aseprite/INSTALL.md

315 lines
12 KiB
Markdown
Raw Normal View History

# Table of contents
* [Platforms](#platforms)
* [Get the source code](#get-the-source-code)
* [Dependencies](#dependencies)
2016-04-27 03:11:45 +00:00
* [Windows dependencies](#windows-dependencies)
* [macOS dependencies](#macos-dependencies)
* [Linux dependencies](#linux-dependencies)
* [Compiling](#compiling)
2016-04-27 03:11:45 +00:00
* [Windows details](#windows-details)
* [macOS details](#macos-details)
2016-04-27 03:11:45 +00:00
* [Issues with Retina displays](#issues-with-retina-displays)
* [Linux details](#linux-details)
* [Using shared third party libraries](#using-shared-third-party-libraries)
* [Building Skia dependency](#building-skia-dependency)
2016-04-27 03:11:45 +00:00
* [Skia on Windows](#skia-on-windows)
* [Skia on macOS](#skia-on-macos)
2018-08-08 21:31:48 +00:00
* [Skia on Linux](#skia-on-linux)
# Platforms
2012-07-08 04:41:14 +00:00
You should be able to compile Aseprite successfully on the following
2012-07-08 04:41:14 +00:00
platforms:
* Windows 10 + VS2017 Community Edition + Windows 10 SDK
2017-09-22 18:41:14 +00:00
* macOS 10.12.6 Sierra + Xcode 9.0 + macOS 10.13 SDK + Skia
* Linux + gcc 4.8 with some C++11 support
2012-07-08 04:41:14 +00:00
# Get the source code
You can get the source code downloading a `Aseprite-v1.x-Source.zip`
2018-08-23 20:35:05 +00:00
file from the latest Aseprite release (*in that case please follow the
compilation instructions inside the `.zip` file*):
https://github.com/aseprite/aseprite/releases
Or you can clone the repository and all its submodules using the
following command:
git clone --recursive https://github.com/aseprite/aseprite.git
To update an existing clone you can use the following commands:
cd aseprite
git pull
git submodule update --init --recursive
2016-04-27 03:54:47 +00:00
You can use [Git for Windows](https://git-for-windows.github.io/) to
2016-04-27 03:11:45 +00:00
clone the repository on Windows.
# Dependencies
2012-07-08 04:41:14 +00:00
2016-04-27 03:11:45 +00:00
To compile Aseprite you will need:
* The latest version of [CMake](http://www.cmake.org/) (3.4 or greater)
* [Ninja](https://ninja-build.org) build system
2018-08-08 21:31:48 +00:00
* You will need a compiled version of the Skia library.
Please check the details about [how to build Skia](#building-skia-dependency)
on your platform.
2016-04-27 03:11:45 +00:00
## Windows dependencies
First of all, you will need:
* Windows 10 (we don't support cross-compiling and don't know if this would be possible)
* [Visual Studio Community Edition](https://www.visualstudio.com/downloads/) (VS2017)
* The [Desktop development with C++](https://docs.microsoft.com/en-us/cpp/build/vscpp-step-0-installation?view=vs-2017#visual-studio-2017-installation) item
from the Visual Studio installer
* Windows 10 SDK item from the Visual Studio installer
Then, you will need an extra little utility: `awk`, used to compile
the libpng library. You can get this utility from MSYS2 distributions
like [MozillaBuild](https://wiki.mozilla.org/MozillaBuild).
2016-04-27 03:11:45 +00:00
2018-08-08 21:31:48 +00:00
You will need to [compile Skia](#skia-on-windows) before and then
continue in the [Compiling](#compiling) section. Remember to check the
[Windows details](#windows-details) section to know how to call
`cmake` correctly.
## macOS dependencies
2016-04-27 03:11:45 +00:00
On macOS you will need macOS 10.12 SDK and Xcode 8.0 (older versions
might work).
2016-04-27 03:11:45 +00:00
2018-08-23 20:35:05 +00:00
You must also compile [Skia](#skia-on-macos) before starting with the
[compilation](#compiling).
## Linux dependencies
2018-08-29 13:24:13 +00:00
You will need the following dependencies on Ubuntu/Debian:
sudo apt-get install -y g++ cmake ninja-build libx11-dev libxcursor-dev libgl1-mesa-dev libfontconfig1-dev
2018-08-29 13:24:13 +00:00
On Fedora:
sudo yum install -y gcc-c++ cmake ninja-build libX11-devel libXcursor-devel mesa-libGL-devel fontconfig-devel
2018-08-23 20:35:05 +00:00
You must also compile [Skia](#skia-on-linux) before starting with the
[compilation](#compiling).
# Compiling
2013-11-23 19:32:13 +00:00
2016-04-27 03:11:45 +00:00
1. [Get Aseprite code](#get-the-source-code), put it in a folder like
`C:\aseprite`, and create a `build` directory inside to leave all
the files that are result of the compilation process (`.exe`,
`.lib`, `.obj`, `.a`, `.o`, etc).
2012-07-08 04:41:14 +00:00
2016-04-27 03:11:45 +00:00
cd C:\aseprite
mkdir build
2012-07-08 04:41:14 +00:00
In this way, if you want to start with a fresh copy of Aseprite
2012-07-08 04:41:14 +00:00
source code, you can remove the `build` directory and start again.
2016-04-27 03:11:45 +00:00
2. Enter in the new directory and execute `cmake`:
2012-07-08 04:41:14 +00:00
2016-04-27 03:11:45 +00:00
cd C:\aseprite\build
cmake -G Ninja ..
2016-04-27 03:11:45 +00:00
Here `cmake` needs different options depending on your
platform. You must check the details for
[Windows](#windows-details), [macOS](#macos-details), and
2016-04-27 03:11:45 +00:00
[Linux](#linux-details). Some `cmake` options can be modified using tools like
[`ccmake`](https://cmake.org/cmake/help/latest/manual/ccmake.1.html)
or [`cmake-gui`](https://cmake.org/cmake/help/latest/manual/cmake-gui.1.html).
2016-04-27 03:11:45 +00:00
3. After you have executed and configured `cmake`, you have to compile
the project:
2012-07-08 04:41:14 +00:00
2016-04-27 03:11:45 +00:00
cd C:\aseprite\build
ninja aseprite
2012-07-08 04:41:14 +00:00
2016-04-27 03:11:45 +00:00
4. When `ninja` finishes the compilation, you can find the executable
inside `C:\aseprite\build\bin\aseprite.exe`.
2012-07-08 04:41:14 +00:00
2016-04-27 03:11:45 +00:00
## Windows details
2012-07-08 04:41:14 +00:00
2018-08-08 21:31:48 +00:00
After you've [compiled Skia](#skia-on-windows) you can execute `cmake`
2016-04-27 03:11:45 +00:00
with the following arguments:
2012-07-08 04:41:14 +00:00
2016-04-27 03:11:45 +00:00
cd aseprite
mkdir build
cd build
2018-08-08 21:31:48 +00:00
cmake -DSKIA_DIR=C:\deps\skia -G Ninja ..
2016-04-27 03:11:45 +00:00
ninja aseprite
2016-04-27 03:11:45 +00:00
In this case, `C:\deps\skia` is the directory where Skia was compiled
as described in [Skia on Windows](#skia-on-windows) section.
## macOS details
After [compiling Skia](#skia-on-macos), you should run `cmake` with
2016-04-27 03:11:45 +00:00
the following parameters and then `ninja`:
2016-04-27 03:11:45 +00:00
cd aseprite
mkdir build
cd build
cmake \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 \
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk \
2016-04-27 03:11:45 +00:00
-DSKIA_DIR=$HOME/deps/skia \
-DWITH_HarfBuzz=OFF \
2016-04-27 03:11:45 +00:00
-G Ninja \
..
ninja aseprite
In this case, `$HOME/deps/skia` is the directory where Skia was
compiled as described in [Skia on macOS](#skia-on-macos) section.
Make sure that `CMAKE_OSX_SYSROOT` is pointing to the correct SDK
directory (in this case
`/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk`),
but it could be different in your Mac.
2012-07-08 04:41:14 +00:00
2016-04-27 03:11:45 +00:00
### Issues with Retina displays
2016-04-27 03:11:45 +00:00
If you have a Retina display, check the following issue:
2014-08-14 03:41:30 +00:00
2016-04-27 03:11:45 +00:00
https://github.com/aseprite/aseprite/issues/589
2016-04-27 03:11:45 +00:00
## Linux details
2018-08-08 21:31:48 +00:00
First you have to [compile Skia](#skia-on-linux), then you should run
`cmake` with the following parameters and then `ninja`:
cd aseprite
mkdir build
cd build
2018-08-08 21:31:48 +00:00
cmake -DSKIA_DIR=$HOME/deps/skia -G Ninja ..
2016-04-27 03:11:45 +00:00
ninja aseprite
2018-08-08 21:31:48 +00:00
In this case, `$HOME/deps/skia` is the directory where Skia was
compiled as described in [Skia on Linux](#skia-on-linux) section.
# Using shared third party libraries
2013-11-23 19:32:13 +00:00
If you don't want to use the embedded code of third party libraries
(i.e. to use your installed versions), you can disable static linking
configuring each `USE_SHARED_` option.
2016-02-29 15:34:55 +00:00
After running `cmake -G`, you can edit `build/CMakeCache.txt` file,
and enable the `USE_SHARED_` flag (set its value to `ON`) of the
library that you want to be linked dynamically.
2013-11-23 19:32:13 +00:00
2016-04-27 03:11:45 +00:00
# Building Skia dependency
2016-04-27 03:11:45 +00:00
When you compile Aseprite with [Skia](https://skia.org) as back-end on
Windows or macOS, you need to compile a specific version of Skia. In
2016-04-27 03:11:45 +00:00
the following sections you will find straightforward steps to compile
Skia.
2016-04-27 03:11:45 +00:00
You can always check the
[official Skia instructions](https://skia.org/user/build) and select
2018-10-18 18:29:16 +00:00
the OS you are building for. Aseprite uses the `aseprite-m71` Skia
2016-07-12 16:37:00 +00:00
branch from `https://github.com/aseprite/skia`.
2016-04-27 03:11:45 +00:00
## Skia on Windows
2016-04-27 03:11:45 +00:00
Download
[Google depot tools](https://storage.googleapis.com/chrome-infra/depot_tools.zip)
and uncompress it in some place like `C:\deps\depot_tools`.
[It's recommended to compile Skia with Clang](https://github.com/google/skia/blob/master/site/user/build.md#a-note-on-software-backend-performance)
to get better performance. So you will need to [download Clang](http://releases.llvm.org/7.0.0/LLVM-7.0.0-win64.exe),
and install it on a folder like `C:\deps\llvm` (a folder without whitespaces).
Open a [developer command prompt](https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs)
or command line (`cmd.exe`) and call:
2017-09-19 16:45:34 +00:00
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat"
Then:
2017-09-19 16:45:34 +00:00
2016-04-27 03:11:45 +00:00
set PATH=C:\deps\depot_tools;%PATH%
cd C:\deps\depot_tools
gclient sync
2016-04-27 03:11:45 +00:00
(The `gclient` command might print an error like
`Error: client not configured; see 'gclient config'`.
Just ignore it.)
2016-04-27 03:11:45 +00:00
cd C:\deps
2018-10-18 18:29:16 +00:00
git clone -b aseprite-m71 https://github.com/aseprite/skia.git
cd skia
python tools/git-sync-deps
2017-09-19 16:45:34 +00:00
(The `tools/git-sync-deps` will take some minutes because it downloads
a lot of packages, please wait and re-run the same command in case it
fails.)
Finally, if you've downloaded Clang, use this command:
set PATH=C:\deps\llvm\bin;%PATH%
gn gen out/Release --args="is_official_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false target_cpu=""x64"" cc=""clang"" cxx=""clang++"" clang_win=""c:\deps\llvm"""
ninja -C out/Release skia
If you haven't installed Clang, and want to compile Skia with MSVC
(anyway it's not recommended because the performance penalty is too
big), you can use the following commands instead:
gn gen out/Release --args="is_official_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false target_cpu=""x86"" cc=2017"
ninja -C out/Release skia
2016-04-27 03:11:45 +00:00
More information about these steps in the
[official Skia documentation](https://skia.org/user/build).
## Skia on macOS
2016-04-27 03:11:45 +00:00
These steps will create a `deps` folder in your home directory with a
couple of subdirectories needed to build Skia (you can change the
`$HOME/deps` with other directory). Some of these commands will take
several minutes to finish:
2016-04-27 03:11:45 +00:00
mkdir $HOME/deps
cd $HOME/deps
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
2018-10-18 18:29:16 +00:00
git clone -b aseprite-m71 https://github.com/aseprite/skia.git
export PATH="${PWD}/depot_tools:${PATH}"
2016-04-27 03:11:45 +00:00
cd skia
python tools/git-sync-deps
gn gen out/Release --args="is_official_build=true skia_use_system_expat=false skia_use_system_icu=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false extra_cflags_cc=[\"-frtti\"]"
ninja -C out/Release skia
2016-04-27 03:11:45 +00:00
After this you should have all Skia libraries compiled. When you
[compile Aseprite](#compiling), remember to add
`-DSKIA_DIR=$HOME/deps/skia` parameter to your `cmake` call as
described in the [macOS details](#macos-details) section.
2016-04-27 03:11:45 +00:00
More information about these steps in the
[official Skia documentation](https://skia.org/user/build).
2018-08-08 21:31:48 +00:00
## Skia on Linux
These steps will create a `deps` folder in your home directory with a
couple of subdirectories needed to build Skia (you can change the
`$HOME/deps` with other directory). Some of these commands will take
several minutes to finish:
mkdir $HOME/deps
cd $HOME/deps
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
2018-10-18 18:29:16 +00:00
git clone -b aseprite-m71 https://github.com/aseprite/skia.git
2018-08-08 21:31:48 +00:00
export PATH="${PWD}/depot_tools:${PATH}"
cd skia
python tools/git-sync-deps
gn gen out/Release --args="is_debug=false is_official_build=true skia_use_system_expat=false skia_use_system_icu=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false"
ninja -C out/Release skia
After this you should have all Skia libraries compiled. When you
[compile Aseprite](#compiling), remember to add
`-DSKIA_DIR=$HOME/deps/skia` parameter to your `cmake` call as
described in the [Linux details](#linux-details) section.
More information about these steps in the
[official Skia documentation](https://skia.org/user/build).