mirror of
https://github.com/aseprite/aseprite.git
synced 2024-12-26 00:19:13 +00:00
01201b260b
In line 168, there was a quotation mark at the end of the line that was causing Bash to expect the user to finish the string, not letting it finish reading the command and compile. It works fine without it, and seems to be a typo.
289 lines
9.5 KiB
Markdown
289 lines
9.5 KiB
Markdown
# Table of contents
|
|
|
|
* [Platforms](#platforms)
|
|
* [Get the source code](#get-the-source-code)
|
|
* [Dependencies](#dependencies)
|
|
* [Windows dependencies](#windows-dependencies)
|
|
* [Mac OS X dependencies](#mac-os-x-dependencies)
|
|
* [Linux dependencies](#linux-dependencies)
|
|
* [Compiling](#compiling)
|
|
* [Windows details](#windows-details)
|
|
* [Mac OS X details](#mac-os-x-details)
|
|
* [Issues with Retina displays](#issues-with-retina-displays)
|
|
* [Linux details](#linux-details)
|
|
* [Using shared third party libraries](#using-shared-third-party-libraries)
|
|
* [Linux issues](#linux-issues)
|
|
* [Building Skia dependency](#building-skia-dependency)
|
|
* [Skia on Windows](#skia-on-windows)
|
|
* [Skia on Mac OS X](#skia-on-mac-os-x)
|
|
|
|
# Platforms
|
|
|
|
You should be able to compile Aseprite successfully on the following
|
|
platforms:
|
|
|
|
* Windows 10 + VS2015 Community Edition + Windows 10 SDK
|
|
* Mac OS X 10.11.4 El Capitan + Xcode 7.3 + OS X 10.11 SDK + Skia (without GPU)
|
|
* Linux + gcc 4.8 with some C++11 support
|
|
|
|
# Get the source code
|
|
|
|
You can get the source code downloading a `Aseprite-v1.x-Source.zip`
|
|
file from the latest Aseprite release:
|
|
|
|
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](https://git-for-windows.github.io/) to
|
|
clone the repository on Windows.
|
|
|
|
# Dependencies
|
|
|
|
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
|
|
|
|
Aseprite can be compiled with two different back-ends:
|
|
|
|
1. Allegro back-end (Windows, Linux): You will not need any extra
|
|
library because the repository already contains a modified version
|
|
of the Allegro library. This back-end is deprecated and will be
|
|
removed in future versions. All new development is being done in
|
|
the new Skia back-end.
|
|
|
|
2. Skia back-end (Windows, Mac OS X): 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.
|
|
|
|
## Windows dependencies
|
|
|
|
First of all, 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).
|
|
|
|
After that you have to choose the back-end:
|
|
|
|
1. If you choose the Allegro back-end, you can jump directly to the
|
|
[Compiling](#compiling) section.
|
|
|
|
2. If you choose the Skia back-end, 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.
|
|
|
|
## Mac OS X dependencies
|
|
|
|
On OS X you will need Mac OS X 10.11 SDK and Xcode 7.3 (maybe older
|
|
versions might work).
|
|
|
|
Also, you must compile [Skia](#skia-on-mac-os-x) before starting with
|
|
the [compilation](#compiling).
|
|
|
|
## Linux dependencies
|
|
|
|
You will need the following dependencies (Ubuntu, Debian):
|
|
|
|
sudo apt-get update -qq
|
|
sudo apt-get install -y g++ libx11-dev libxcursor-dev cmake ninja-build
|
|
|
|
The `libxcursor-dev` package is needed to
|
|
[hide the hardware cursor](https://github.com/aseprite/aseprite/issues/913).
|
|
|
|
# Compiling
|
|
|
|
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).
|
|
|
|
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 ..
|
|
|
|
Here `cmake` needs different options depending on your
|
|
platform. You must check the details for
|
|
[Windows](#windows-details), [OS X](#mac-os-x-details), and
|
|
[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).
|
|
|
|
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
|
|
|
|
To choose the Skia back-end
|
|
([after you've compiled Skia](#skia-on-windows)) you can execute `cmake`
|
|
with the following arguments:
|
|
|
|
cd aseprite
|
|
mkdir build
|
|
cd build
|
|
cmake -DUSE_ALLEG4_BACKEND=OFF -DUSE_SKIA_BACKEND=ON -DSKIA_DIR=C:\deps\skia -G Ninja ..
|
|
ninja aseprite
|
|
|
|
In this case, `C:\deps\skia` is the directory where Skia was compiled
|
|
as described in [Skia on Windows](#skia-on-windows) section.
|
|
|
|
## Mac OS X details
|
|
|
|
After [compiling Skia](#skia-on-mac-os-x), you should run `cmake` with
|
|
the following parameters and then `ninja`:
|
|
|
|
cd aseprite
|
|
mkdir build
|
|
cd build
|
|
cmake \
|
|
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
|
|
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
|
|
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk \
|
|
-DUSE_ALLEG4_BACKEND=OFF \
|
|
-DUSE_SKIA_BACKEND=ON \
|
|
-DSKIA_DIR=$HOME/deps/skia \
|
|
-DWITH_HarfBuzz=OFF \
|
|
-G Ninja \
|
|
..
|
|
ninja aseprite
|
|
|
|
In this case, `$HOME/deps/skia` is the directory where Skia was
|
|
compiled as described in [Skia on Mac OS X](#skia-on-mac-os-x) section.
|
|
|
|
### Issues with Retina displays
|
|
|
|
If you have a Retina display, check the following issue:
|
|
|
|
https://github.com/aseprite/aseprite/issues/589
|
|
|
|
## Linux details
|
|
|
|
On Linux you can specify a specific directory to install Aseprite
|
|
after a `ninja install` command. For example:
|
|
|
|
cd aseprite
|
|
mkdir build
|
|
cd build
|
|
cmake -DCMAKE_INSTALL_PREFIX=~/software -G Ninja ..
|
|
ninja aseprite
|
|
|
|
Then, you can invoke `ninja install` and it will copy the program in
|
|
the given location (e.g. `~/software/bin/aseprite` on Linux).
|
|
|
|
# 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.
|
|
|
|
## Linux issues
|
|
|
|
If you use the official version of Allegro 4.4 library (i.e. you
|
|
compile with `USE_SHARED_ALLEGRO4=ON`) you will experience a couple of
|
|
known issues solved in
|
|
[our patched version of Allegro 4.4 library](https://github.com/aseprite/aseprite/tree/master/src/allegro):
|
|
|
|
* You will
|
|
[not be able to resize the window](https://github.com/aseprite/aseprite/issues/192)
|
|
([patch](https://github.com/aseprite/aseprite/commit/920f6275d55113507121afcbcda80adb44cc0563)).
|
|
* You will have problems
|
|
[adding HSV colors in non-English systems](https://github.com/aseprite/aseprite/commit/27b55030e26e93c5e8d9e7e21206c8709d46ff22)
|
|
using the warning icon.
|
|
|
|
# Building Skia dependency
|
|
|
|
When you compile Aseprite with [Skia](https://skia.org) as back-end on
|
|
Windows or OS X, you need to compile a specific version of Skia. In
|
|
the following sections you will find straightforward steps to compile
|
|
Skia.
|
|
|
|
You can always check the
|
|
[official Skia instructions](https://skia.org/user/quick) and select
|
|
the OS you are building for. Aseprite uses the `chrome/m50` Skia
|
|
branch, without GPU support.
|
|
|
|
## Skia on Windows
|
|
|
|
Download
|
|
[Google depot tools](https://storage.googleapis.com/chrome-infra/depot_tools.zip)
|
|
and uncompress it in some place like `C:\deps\depot_tools`.
|
|
|
|
Then open a command line follow these steps (for VS2015):
|
|
|
|
call "%VS140COMNTOOLS%\vsvars32.bat"
|
|
set PATH=C:\deps\depot_tools;%PATH%
|
|
cd C:\deps\depot_tools
|
|
gclient sync
|
|
|
|
(The `gclient` command might print an error like
|
|
`Error: client not configured; see 'gclient config'`.
|
|
Just ignore it.)
|
|
|
|
cd C:\deps
|
|
git clone https://skia.googlesource.com/skia
|
|
cd skia
|
|
git checkout chrome/m50
|
|
set GYP_DEFINES=skia_gpu=0
|
|
python bin/sync-and-gyp
|
|
|
|
(The `bin/sync-and-gyp` will take some minutes because it downloads a
|
|
lot of packages, please wait and re-run the same command in case it fails.)
|
|
|
|
ninja -C out/Release dm
|
|
|
|
More information about these steps in the
|
|
[official Skia documentation](https://skia.org/user/quick/windows).
|
|
|
|
## Skia on Mac OS X
|
|
|
|
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
|
|
git clone https://skia.googlesource.com/skia
|
|
export PATH="${PWD}/depot_tools:${PATH}"
|
|
cd skia
|
|
git checkout chrome/m50
|
|
export GYP_DEFINES='skia_gpu=0'
|
|
python bin/sync-and-gyp
|
|
ninja -C out/Release dm
|
|
|
|
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 [Mac OS X details](#mac-os-x-details) section.
|
|
|
|
More information about these steps in the
|
|
[official Skia documentation](https://skia.org/user/quick/macos).
|