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