Github Aseprite 仓库
Asperite 是一个专门绘制 2D 像素画的图形编辑器, 有付费版, 也能在 Github 找到开源版本 (需要自行编译)
编译流程
具体可以看 仓库里的 INSTALL.md, 需要注意的是, 除了安装依赖以外, 还需要先编译 Skia 库. 下面是 Archlinux 上的编译流程.
编译 Skia
先编译 Skia:
1 2 3 4 5
| mkdir $HOME/deps cd $HOME/deps git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git git clone -b aseprite-m102 https://github.com/aseprite/skia.git export PATH="${PWD}/depot_tools:${PATH}"
|
不一定是在 $HOME
下, 我这里就选用了其他目录, 后面步骤如果遇到路径也记得替换, 上面运行结束后的目录结构和环境变量为:
之后拉取 python 依赖:
1 2
| cd skia python tools/git-sync-deps
|
注意这里的最后一步 python tools/git-sync-deps
需要获取较多依赖文件, 可能需要保持网络良好. 全部成功拉取如下:
之后, 若使用 clang
编译, 则运行:
1
| gn gen out/Release-x64 --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 skia_use_sfntly=false skia_use_freetype=true skia_use_harfbuzz=true skia_pdf_subset_harfbuzz=true skia_use_system_freetype2=false skia_use_system_harfbuzz=false cc="clang" cxx="clang++" extra_cflags_cc=["-stdlib=libc++"] extra_ldflags=["-stdlib=libc++"]'
|
若使用 g++
编译, 则运行:
1
| gn gen out/Release-x64 --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 skia_use_sfntly=false skia_use_freetype=true skia_use_harfbuzz=true skia_pdf_subset_harfbuzz=true skia_use_system_freetype2=false skia_use_system_harfbuzz=false"
|
只要确保编译 Skia 和编译 Asperite 用同一个工具即可.
最后运行:
1
| ninja -C out/Release-x64 skia modules
|
若遇到报错:
则说明是 python tools/git-sync-deps
有依赖没拉取全, 此时:
1 2 3 4 5
| rm -rf out/Release-x64
python3 tools/git-sync-deps
|
之后重复 gn gen ...
以及 ninja ...
即可.
(虽然有 warning 但问题不大)
Aseprite 的编译
先回到 deps
目录, 然后拉取仓库:
1 2
| cd $HOME/deps git clone --recursive https://github.com/aseprite/aseprite.git
|
若仓库比较老, 需要更新到最新的版本, 则:
1 2 3
| cd aseprite git pull git submodule update --init --recursive
|
安装其他 dependencies:
1
| sudo pacman -S gcc clang libc++ cmake ninja libx11 libxcursor mesa-libgl fontconfig
|
这里若有包冲突最好还是上网搜搜解决吧, 这个没有啥固定的解法.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| cd aseprite mkdir build cd build export CC=clang export CXX=clang++ cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_CXX_FLAGS:STRING=-stdlib=libc++ \ -DCMAKE_EXE_LINKER_FLAGS:STRING=-stdlib=libc++ \ -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
|
注意这里的 DSKIA_DIR
, DSKIA_LIBRARY_DIR
, DSKIA_LIBRARY
的路径改为之前 Skia 编译好的路径, 比如我的就是:
1 2 3 4 5 6 7 8 9 10
| cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_CXX_FLAGS:STRING=-stdlib=libc++ \ -DCMAKE_EXE_LINKER_FLAGS:STRING=-stdlib=libc++ \ -DLAF_BACKEND=skia \ -DSKIA_DIR=/home/jie/Disk2/tmp/deps/skia \ -DSKIA_LIBRARY_DIR=/home/jie/Disk2/tmp/deps/skia/out/Release-x64 \ -DSKIA_LIBRARY=/home/jie/Disk2/tmp/deps/skia/out/Release-x64/libskia.a \ -G Ninja \ ..
|