xcursor-pro: init at 2.0.2 (#335188)
[NixPkgs.git] / pkgs / by-name / sy / synfigstudio / package.nix
blob3d5cee8a5931f9ea3ee809a566ff41f3a84d8937
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   pkg-config,
6   autoreconfHook,
7   wrapGAppsHook3,
9   boost,
10   cairo,
11   darwin,
12   gettext,
13   glibmm,
14   gtk3,
15   gtkmm3,
16   libjack2,
17   libsigcxx,
18   libxmlxx,
19   mlt,
20   pango,
21   imagemagick,
22   intltool,
23   adwaita-icon-theme,
24   harfbuzz,
25   freetype,
26   fribidi,
27   openexr,
28   fftw,
31 let
32   version = "1.5.3";
33   src = fetchFromGitHub {
34     owner = "synfig";
35     repo = "synfig";
36     rev = "v${version}";
37     hash = "sha256-D+FUEyzJ74l0USq3V9HIRAfgyJfRP372aEKDqF8+hsQ=";
38   };
40   ETL = stdenv.mkDerivation {
41     pname = "ETL";
42     inherit version src;
44     sourceRoot = "${src.name}/ETL";
46     nativeBuildInputs = [
47       pkg-config
48       autoreconfHook
49     ];
50     buildInputs = [
51       glibmm
52     ];
53   };
55   synfig = stdenv.mkDerivation {
56     pname = "synfig";
57     inherit version src;
59     sourceRoot = "${src.name}/synfig-core";
61     configureFlags =
62       [
63         "--with-boost=${boost.dev}"
64         "--with-boost-libdir=${boost.out}/lib"
65       ]
66       ++ lib.optionals stdenv.cc.isClang [
67         # Newer versions of clang default to C++17, but synfig and some of its dependencies use deprecated APIs that
68         # are removed in C++17. Setting the language version to C++14 allows it to build.
69         "CXXFLAGS=-std=c++14"
70       ];
72     enableParallelBuilding = true;
74     nativeBuildInputs = [
75       pkg-config
76       autoreconfHook
77       gettext
78       intltool
79     ];
80     buildInputs =
81       [
82         ETL
83         boost
84         cairo
85         glibmm
86         mlt
87         libsigcxx
88         libxmlxx
89         pango
90         imagemagick
91         harfbuzz
92         freetype
93         fribidi
94         openexr
95         fftw
96       ]
97       ++ lib.optionals stdenv.hostPlatform.isDarwin [
98         darwin.apple_sdk.frameworks.Foundation
99       ];
100   };
102 stdenv.mkDerivation {
103   pname = "synfigstudio";
104   inherit version src;
106   sourceRoot = "${src.name}/synfig-studio";
108   postPatch = ''
109     patchShebangs images/splash_screen_development.sh
110   '';
112   preConfigure = ''
113     ./bootstrap.sh
114   '';
116   configureFlags = lib.optionals stdenv.cc.isClang [
117     # Newer versions of clang default to C++17, but synfig and some of its dependencies use deprecated APIs that
118     # are removed in C++17. Setting the language version to C++14 allows it to build.
119     "CXXFLAGS=-std=c++14"
120   ];
122   nativeBuildInputs = [
123     pkg-config
124     autoreconfHook
125     gettext
126     intltool
127     wrapGAppsHook3
128   ];
129   buildInputs = [
130     ETL
131     synfig
132     boost
133     cairo
134     glibmm
135     gtk3
136     gtkmm3
137     imagemagick
138     libjack2
139     libsigcxx
140     libxmlxx
141     mlt
142     adwaita-icon-theme
143     openexr
144     fftw
145   ];
147   enableParallelBuilding = true;
149   passthru = {
150     # Expose libraries and cli tools
151     inherit ETL synfig;
152   };
154   meta = with lib; {
155     description = "2D animation program";
156     homepage = "http://www.synfig.org";
157     license = licenses.gpl3Plus;
158     maintainers = [ ];
159     platforms = platforms.linux ++ platforms.darwin;
160   };