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