python312Packages.powerfox: init at 1.1.0 (#371207)
[NixPkgs.git] / pkgs / applications / editors / libresprite / default.nix
blobd65389d917e27dea56cfa9bb7f887b7e260da777
2   lib,
3   stdenv,
4   fetchFromGitHub,
6   cmake,
7   pkg-config,
8   ninja,
9   gtest,
11   curl,
12   freetype,
13   giflib,
14   libjpeg,
15   libpng,
16   libwebp,
17   libarchive,
18   pixman,
19   tinyxml-2,
20   zlib,
21   SDL2,
22   SDL2_image,
23   lua,
24   AppKit,
25   Cocoa,
26   Foundation,
28   nixosTests,
31 stdenv.mkDerivation (finalAttrs: {
32   pname = "libresprite";
33   version = "1.1";
35   src = fetchFromGitHub {
36     owner = "LibreSprite";
37     repo = "LibreSprite";
38     rev = "v${finalAttrs.version}";
39     fetchSubmodules = true;
40     hash = "sha256-piA/hLQqdfyVH4GPu5ElXZtowQL9AGaK7GhZOME4L0Q=";
41   };
43   nativeBuildInputs = [
44     cmake
45     pkg-config
46     ninja
47     gtest
48   ];
50   buildInputs =
51     [
52       curl
53       freetype
54       giflib
55       libjpeg
56       libpng
57       libwebp
58       libarchive
59       pixman
60       tinyxml-2
61       zlib
62       SDL2
63       SDL2_image
64       lua
65       # no v8 due to missing libplatform and libbase
66     ]
67     ++ lib.optionals stdenv.hostPlatform.isDarwin [
68       AppKit
69       Cocoa
70       Foundation
71     ];
73   cmakeFlags = [
74     "-DWITH_DESKTOP_INTEGRATION=ON"
75     "-DWITH_WEBP_SUPPORT=ON"
76   ];
78   hardeningDisable = lib.optional stdenv.hostPlatform.isDarwin "format";
80   # Install mime icons. Note that the mimetype is still "x-aseprite"
81   postInstall = ''
82     src="$out/share/libresprite/data/icons"
83     for size in 16 32 48 64; do
84       dst="$out"/share/icons/hicolor/"$size"x"$size"
85       install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/aseprite.png
86     done
87   '';
89   passthru.tests = {
90     libresprite-can-open-png = nixosTests.libresprite;
91   };
93   meta = {
94     homepage = "https://libresprite.github.io/";
95     description = "Animated sprite editor & pixel art tool, fork of Aseprite";
96     license = lib.licenses.gpl2Only;
97     longDescription = ''
98       LibreSprite is a program to create animated sprites. Its main features are:
100         - Sprites are composed by layers & frames (as separated concepts).
101         - Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
102         - Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
103         - Export/import animations to/from Sprite Sheets.
104         - Tiled drawing mode, useful to draw patterns and textures.
105         - Undo/Redo for every operation.
106         - Real-time animation preview.
107         - Multiple editors support.
108         - Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
109         - Onion skinning.
110     '';
111     maintainers = with lib.maintainers; [ fgaz ];
112     platforms = lib.platforms.all;
113     # https://github.com/LibreSprite/LibreSprite/issues/308
114     broken = stdenv.hostPlatform.isDarwin;
115   };