aseprite/INSTALL.md
David Capello 88f9fbebec Add -DSKIA_LIBRARY flag for laf library in compilation instructions
The SKIA_LIBRARY is filled automatically using find_library() and
SKIA_LIBRARY_DIR, but it looks like somethings it doesn't work and
it's better to just specify the SKIA_LIBRARY directly.
2020-08-17 11:57:05 -03:00

7.2 KiB

Table of contents

Platforms

You should be able to compile Aseprite successfully on the following platforms:

Get the source code

You can get the source code downloading a Aseprite-v1.x-Source.zip 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

You can use Git for Windows to clone the repository on Windows.

Dependencies

To compile Aseprite you will need:

Windows dependencies

macOS dependencies

On macOS you will need macOS 10.15 SDK and Xcode 11.2.1 (older versions might work).

Linux dependencies

You will need the following dependencies on Ubuntu/Debian:

sudo apt-get install -y g++ cmake ninja-build libx11-dev libxcursor-dev libxi-dev libgl1-mesa-dev libfontconfig1-dev

On Fedora:

sudo dnf install -y gcc-c++ cmake ninja-build libX11-devel libXcursor-devel libXi-devel mesa-libGL-devel fontconfig-devel

Compiling

  1. Get Aseprite 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).

     cd C:\aseprite
     mkdir build
    

    In this way, if you want to start with a fresh copy of Aseprite source code, you can remove the build directory and start again.

  2. Enter in the new directory and execute cmake:

     cd C:\aseprite\build
     cmake -G Ninja -DLAF_BACKEND=skia ..
    

    Here cmake needs different options depending on your platform. You must check the details for Windows, macOS, and Linux. Some cmake options can be modified using tools like ccmake or cmake-gui.

  3. After you have executed and configured cmake, you have to compile the project:

     cd C:\aseprite\build
     ninja aseprite
    
  4. When ninja finishes the compilation, you can find the executable inside C:\aseprite\build\bin\aseprite.exe.

Windows details

Open a developer command prompt or in the command line (cmd.exe) call:

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=x64

And then

cd aseprite
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLAF_BACKEND=skia -DSKIA_DIR=C:\deps\skia -DSKIA_LIBRARY_DIR=C:\deps\skia\out\Release-x64 -DSKIA_LIBRARY=C:\deps\skia\out\Release-x64\skia.lib -G Ninja ..
ninja aseprite

In this case, C:\deps\skia is the directory where Skia was compiled or uncompressed.

MinGW

We don't support MinGW compiler and it might bring some problems into the compilation process. If you see that the detected C++ compiler by cmake is C:\MinGW\bin\c++.exe or something similar, you have to get rid of MinGW path (C:\MinGW\bin) from the PATH environment variable and run cmake again from scratch, so the Visual Studio C++ compiler (cl.exe) is used instead.

You can define the CMAKE_IGNORE_PATH variable when running cmake for the first time in case that you don't know or don't want to modify the PATH variable, e.g.:

cmake -DCMAKE_IGNORE_PATH=C:\MinGW\bin ...

More information in issue #2449

macOS details

Run cmake with the following parameters and then ninja:

cd aseprite
mkdir build
cd build
cmake \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -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.15.sdk \
  -DLAF_BACKEND=skia \
  -DSKIA_DIR=$HOME/deps/skia \
  -DSKIA_LIBRARY_DIR=$HOME/deps/skia/out/Release-x64 \
  -DSKIA_LIBRARY=$HOME/deps/skia/out/Release-x64/libskia.a \
  -G Ninja \
  ..
ninja aseprite

In this case, $HOME/deps/skia is the directory where Skia was compiled or downloaded. 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.15.sdk), but it could be different in your Mac.

Issues with Retina displays

If you have a Retina display, check the following issue:

https://github.com/aseprite/aseprite/issues/589

Linux details

Run cmake with the following parameters and then ninja:

cd aseprite
mkdir build
cd build
cmake \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -DLAF_BACKEND=skia \
  -DSKIA_DIR=$HOME/deps/skia \
  -DSKIA_LIBRARY_DIR=$HOME/deps/skia/out/Release-x64 \
  -DSKIA_LIBRARY=$HOME/deps/skia/out/Release-x64/libskia.a \
  -G Ninja \
  ..
ninja aseprite

In this case, $HOME/deps/skia is the directory where Skia was compiled or uncompressed.

Using shared third party libraries

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.

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.