Skip to content

Instantly share code, notes, and snippets.

@veganaize
Last active February 24, 2024 17:25
Show Gist options
  • Save veganaize/84876f1a391fe10471703ac7e4fd6bd7 to your computer and use it in GitHub Desktop.
Save veganaize/84876f1a391fe10471703ac7e4fd6bd7 to your computer and use it in GitHub Desktop.
Compile Aseprite from source code for GNU/Linux: https://youtu.be/t860yl4B5g4

Debian prerequisites

su -c "apt-get install -y g++ clang libc++-dev libc++abi-dev cmake ninja-build libx11-dev libxcursor-dev libxi-dev libgl1-mesa-dev libfontconfig1-dev curl nano"
su -c "apt-get clean"

Arch prerequisites

su -c "pacman -S nano unzip gcc clang libc++ cmake ninja libx11 libxcursor mesa-libgl fontconfig"
su -c "pacman -Scc"

Create folders

mkdir -p ~/src/ase/build ~/src/deps/skia

Download & unpack Aseprite source

cd ~/src/ase
curl -LO https://github.com/aseprite/aseprite/releases/download/v1.2.39/Aseprite-v1.2.39-Source.zip
unzip Aseprite-v1.2.39-Source.zip

Download & unpack Skia library

cd ~/src/deps/skia

curl -LO https://github.com/aseprite/skia/releases/download/m102-861e4743af/Skia-Linux-Release-x64-libc++.zip
## OR ##
curl -LO https://github.com/aseprite/skia/releases/download/m102-861e4743af/Skia-Linux-Release-x64-libstdc++.zip

unzip Skia-Linux-Release-x64-libc++.zip || unzip Skia-Linux-Release-x64-libstdc++.zip

Build Aseprite

cd ~/src/ase/build

######## Clang (only) ########
export CC=clang
export CXX=clang++

######## libc++ (clang only) ########
cmake \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -DCMAKE_CXX_FLAGS:STRING=--stdlib=libc++ \
  -DCMAKE_EXE_LINKER_FLAGS:STRING=--stdlib=libc++ \
  -DLAF_BACKEND=skia \
  -DSKIA_DIR=$HOME/src/deps/skia \
  -DSKIA_LIBRARY_DIR=$HOME/src/deps/skia/out/Release-x64 \
  -DSKIA_LIBRARY=$HOME/src/deps/skia/out/Release-x64/libskia.a \
  -G Ninja ..

## OR ##

######## libstdc++ (gcc or clang) ########
cmake \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -DCMAKE_CXX_FLAGS:STRING=-static-libstdc++ \
  -DCMAKE_EXE_LINKER_FLAGS:STRING=-static-libstdc++ \
  -DLAF_BACKEND=skia \
  -DSKIA_DIR=$HOME/src/deps/skia \
  -DSKIA_LIBRARY_DIR=$HOME/src/deps/skia/out/Release-x64 \
  -DSKIA_LIBRARY=$HOME/src/deps/skia/out/Release-x64/libskia.a \
  -G Ninja ..

######## Shared Libraries (libstdc++) ########
su -c "pacman -S tinyxml cmark"  # Arch additional packages (1167 steps)
su -c "apt-get install libharfbuzz-dev libgif-dev libjpeg-dev libcurl4-openssl-dev libtinyxml-dev libpixman-1-dev libcmark-dev"  # Debian additional packages (1166 steps)
nano -w CMakeCache.txt  # Enable the `USE_SHARED_` flags; set their value to `ON`.

ninja aseprite

Install program

mkdir ~/opt
mv -T bin ~/opt/aseprite
~/opt/aseprite/aseprite

## OR ##

su -c "usermod -aG games username"
su -c "chown -R root:games"
su -c "mv -T bin /opt/aseprite"
/opt/aseprite/aseprite

Create Desktop Shortcut

cd /usr/local/share
su -c "mkdir applications"
su -c "nano applications/aseprite.desktop"
[Desktop Entry]
Type=Application
Name=Aseprite
TryExec=/opt/aseprite/aseprite
Exec=/opt/aseprite/aseprite
Icon=aseprite
Terminal=false
StartupNotify=false

Logout & back in...

@totally-real-penguin
Copy link

thank you

@Matt-develop
Copy link

thank you for the amazing work!

@SagXD
Copy link

SagXD commented Nov 15, 2023

Thank You

@fx310ferreira
Copy link

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment