biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / audio / CHOWTapeModel / default.nix
blob29c1b82d9d0e1c0041db0cff568682fc5a0f1b0c
1 { alsa-lib
2 , at-spi2-core
3 , cmake
4 , curl
5 , dbus
6 , libepoxy
7 , fetchFromGitHub
8 , freeglut
9 , freetype
10 , gtk3
11 , lib
12 , libGL
13 , libXcursor
14 , libXdmcp
15 , libXext
16 , libXinerama
17 , libXrandr
18 , libXtst
19 , libdatrie
20 , libjack2
21 , libpsl
22 , libselinux
23 , libsepol
24 , libsysprof-capture
25 , libthai
26 , libuuid
27 , libxkbcommon
28 , lv2
29 , pcre
30 , pcre2
31 , pkg-config
32 , python3
33 , sqlite
34 , gcc11Stdenv
35 , webkitgtk
37 let
38   # JUCE version in submodules is incompatible with GCC12
39   # See here: https://forum.juce.com/t/build-fails-on-fedora-wrong-c-version/50902/2
40   stdenv = gcc11Stdenv;
42 stdenv.mkDerivation rec {
43   pname = "CHOWTapeModel";
44   version = "2.11.4";
46   src = fetchFromGitHub {
47     owner = "jatinchowdhury18";
48     repo = "AnalogTapeModel";
49     rev = "v${version}";
50     sha256 = "sha256-WriHi68Y6hAsrwE+74JtVlAKUR9lfTczj6UK9h2FOGM=";
51     fetchSubmodules = true;
52   };
54   nativeBuildInputs = [ pkg-config cmake ];
56   buildInputs = [
57     alsa-lib
58     at-spi2-core
59     curl
60     dbus
61     libepoxy
62     freeglut
63     freetype
64     gtk3
65     libGL
66     libXcursor
67     libXdmcp
68     libXext
69     libXinerama
70     libXrandr
71     libXtst
72     libdatrie
73     libjack2
74     libpsl
75     libselinux
76     libsepol
77     libsysprof-capture
78     libthai
79     libuuid
80     libxkbcommon
81     lv2
82     pcre
83     pcre2
84     python3
85     sqlite
86     webkitgtk
87   ];
89   # Link-time-optimization fails without these
90   cmakeFlags = [
91     "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
92     "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
93     "-DCMAKE_NM=${stdenv.cc.cc}/bin/gcc-nm"
94   ];
96   cmakeBuildType = "Release";
98   postPatch = "cd Plugin";
100   installPhase = ''
101     mkdir -p $out/lib/lv2 $out/lib/vst3 $out/lib/clap $out/bin $out/share/doc/CHOWTapeModel/
102     cd CHOWTapeModel_artefacts/${cmakeBuildType}
103     cp -r LV2/CHOWTapeModel.lv2 $out/lib/lv2
104     cp -r VST3/CHOWTapeModel.vst3 $out/lib/vst3
105     cp -r CLAP/CHOWTapeModel.clap $out/lib/clap
106     cp Standalone/CHOWTapeModel  $out/bin
107     cp ../../../../Manual/ChowTapeManual.pdf $out/share/doc/CHOWTapeModel/
108   '';
110   # JUCE dlopens these, make sure they are in rpath
111   # Otherwise, segfault will happen
112   NIX_LDFLAGS = (toString [
113     "-lX11"
114     "-lXext"
115     "-lXcursor"
116     "-lXinerama"
117     "-lXrandr"
118   ]);
120   meta = with lib; {
121     homepage = "https://github.com/jatinchowdhury18/AnalogTapeModel";
122     description =
123       "Physical modelling signal processing for analog tape recording. LV2, VST3, CLAP, and standalone";
124     license = with licenses; [ gpl3Only ];
125     maintainers = with maintainers; [ magnetophon ];
126     platforms = platforms.linux;
127     # error: 'vvtanh' was not declared in this scope; did you mean 'tanh'?
128     # error: no matching function for call to 'juce::dsp::SIMDRegister<double>::SIMDRegister(xsimd::simd_batch_traits<xsimd::batch<double, 2> >::batch_bool_type)'
129     broken = stdenv.isAarch64; # since 2021-12-27 on hydra (update to 2.10): https://hydra.nixos.org/build/162558991
130     mainProgram = "CHOWTapeModel";
131   };