171 lines
4 KiB
Nix
171 lines
4 KiB
Nix
|
{
|
||
|
clangStdenv,
|
||
|
cmake,
|
||
|
cmark,
|
||
|
curl,
|
||
|
fetchFromGitHub,
|
||
|
fetchpatch,
|
||
|
fmt,
|
||
|
fontconfig,
|
||
|
freetype,
|
||
|
giflib,
|
||
|
gitUpdater,
|
||
|
glib,
|
||
|
harfbuzzFull,
|
||
|
lib,
|
||
|
libGL,
|
||
|
libjpeg,
|
||
|
libpng,
|
||
|
libwebp,
|
||
|
libX11,
|
||
|
libXcursor,
|
||
|
libXext,
|
||
|
libXi,
|
||
|
libXxf86vm,
|
||
|
ninja,
|
||
|
pcre2,
|
||
|
pixman,
|
||
|
pkg-config,
|
||
|
skia-aseprite,
|
||
|
tinyxml-2,
|
||
|
zlib,
|
||
|
}:
|
||
|
|
||
|
clangStdenv.mkDerivation (finalAttrs: {
|
||
|
pname = "aseprite";
|
||
|
version = "1.3.7";
|
||
|
|
||
|
src = fetchFromGitHub {
|
||
|
owner = "aseprite";
|
||
|
repo = "aseprite";
|
||
|
rev = "v" + finalAttrs.version;
|
||
|
fetchSubmodules = true;
|
||
|
hash = "sha256-75kYJXmyags0cW2D5Ksq1uUrFSCAkFOdmn7Ya/6jLXc=";
|
||
|
};
|
||
|
|
||
|
nativeBuildInputs = [
|
||
|
cmake
|
||
|
ninja
|
||
|
pkg-config
|
||
|
];
|
||
|
|
||
|
buildInputs = [
|
||
|
cmark
|
||
|
curl
|
||
|
fmt
|
||
|
fontconfig
|
||
|
freetype
|
||
|
giflib
|
||
|
glib
|
||
|
harfbuzzFull
|
||
|
libGL
|
||
|
libjpeg
|
||
|
libpng
|
||
|
libwebp
|
||
|
libX11
|
||
|
libXcursor
|
||
|
libXext
|
||
|
libXi
|
||
|
libXxf86vm
|
||
|
pcre2
|
||
|
pixman
|
||
|
skia-aseprite
|
||
|
tinyxml-2
|
||
|
zlib
|
||
|
];
|
||
|
|
||
|
patches = [
|
||
|
# https://github.com/aseprite/aseprite/issues/4486
|
||
|
# FIXME: remove on next release.
|
||
|
(fetchpatch {
|
||
|
name = "ENABLE_UPDATER-fix.patch";
|
||
|
url = "https://github.com/aseprite/aseprite/commit/8fce589.patch";
|
||
|
hash = "sha256-DbL6kK//gQXbsXEn/t+KTuoM7E9ocPAsVqEO+lYrka4=";
|
||
|
})
|
||
|
./shared-fmt.patch
|
||
|
./shared-libwebp.patch
|
||
|
./shared-skia-deps.patch
|
||
|
];
|
||
|
|
||
|
postPatch =
|
||
|
let
|
||
|
# Translation strings
|
||
|
strings = fetchFromGitHub {
|
||
|
owner = "aseprite";
|
||
|
repo = "strings";
|
||
|
rev = "e18a09fefbb6cd904e506183d5fbe08558a52ed4";
|
||
|
hash = "sha256-GyCCxbhgf0vST20EH/+KkNLrF+U9Xzgpxlao8s925PQ=";
|
||
|
};
|
||
|
in
|
||
|
''
|
||
|
sed -i src/ver/CMakeLists.txt -e "s-set(VERSION \".*\")-set(VERSION \"$version\")-"
|
||
|
rm -rf data/strings
|
||
|
cp -r ${strings} data/strings
|
||
|
'';
|
||
|
|
||
|
cmakeFlags = [
|
||
|
"-DENABLE_DESKTOP_INTEGRATION=ON"
|
||
|
"-DENABLE_UPDATER=OFF"
|
||
|
"-DUSE_SHARED_CMARK=ON"
|
||
|
"-DUSE_SHARED_CURL=ON"
|
||
|
"-DUSE_SHARED_FMT=ON"
|
||
|
"-DUSE_SHARED_FREETYPE=ON"
|
||
|
"-DUSE_SHARED_GIFLIB=ON"
|
||
|
"-DUSE_SHARED_HARFBUZZ=ON"
|
||
|
"-DUSE_SHARED_JPEGLIB=ON"
|
||
|
"-DUSE_SHARED_LIBPNG=ON"
|
||
|
"-DUSE_SHARED_LIBWEBP=ON"
|
||
|
"-DUSE_SHARED_PIXMAN=ON"
|
||
|
"-DUSE_SHARED_TINYXML=ON"
|
||
|
"-DUSE_SHARED_WEBP=ON"
|
||
|
"-DUSE_SHARED_ZLIB=ON"
|
||
|
# Disable libarchive programs.
|
||
|
"-DENABLE_CAT=OFF"
|
||
|
"-DENABLE_CPIO=OFF"
|
||
|
"-DENABLE_TAR=OFF"
|
||
|
# UI backend.
|
||
|
"-DLAF_OS_BACKEND=skia"
|
||
|
"-DLAF_WITH_EXAMPLES=OFF"
|
||
|
"-DSKIA_DIR=${skia-aseprite}"
|
||
|
"-DSKIA_LIBRARY_DIR=${skia-aseprite}/lib"
|
||
|
];
|
||
|
|
||
|
postInstall = ''
|
||
|
# Install desktop icons.
|
||
|
src="$out/share/aseprite/data/icons"
|
||
|
for size in 16 32 48 64 128 256; do
|
||
|
dst="$out"/share/icons/hicolor/"$size"x"$size"
|
||
|
install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png
|
||
|
install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/image-x-aseprite.png
|
||
|
done
|
||
|
# Delete unneeded artifacts of bundled libraries.
|
||
|
rm -rf "$out"/{include,lib,man}
|
||
|
'';
|
||
|
|
||
|
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
|
||
|
|
||
|
meta = {
|
||
|
homepage = "https://www.aseprite.org/";
|
||
|
description = "Animated sprite editor & pixel art tool";
|
||
|
license = lib.licenses.unfree;
|
||
|
longDescription = ''
|
||
|
Aseprite is a program to create animated sprites. Its main features are:
|
||
|
|
||
|
- Sprites are composed by layers & frames (as separated concepts).
|
||
|
- Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
|
||
|
- Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
|
||
|
- Export/import animations to/from Sprite Sheets.
|
||
|
- Tiled drawing mode, useful to draw patterns and textures.
|
||
|
- Undo/Redo for every operation.
|
||
|
- Real-time animation preview.
|
||
|
- Multiple editors support.
|
||
|
- Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
|
||
|
- Onion skinning.
|
||
|
'';
|
||
|
maintainers = with lib.maintainers; [
|
||
|
orivej
|
||
|
];
|
||
|
platforms = lib.platforms.linux;
|
||
|
};
|
||
|
})
|