biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / audio / dexed / default.nix
blobd7e8b0fd238036170bd9bfc5e2c9b68c2053fa5f
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , cmake
5 , pkg-config
6 , libX11
7 , libXrandr
8 , libXinerama
9 , libXext
10 , libXcursor
11 , freetype
12 , alsa-lib
13 , libjack2
14 , Accelerate
15 , Cocoa
16 , WebKit
17 , MetalKit
18 , simd
19 , DiscRecording
20 , CoreAudioKit
23 stdenv.mkDerivation rec {
24   pname = "dexed";
25   version = "unstable-2022-07-09";
27   src = fetchFromGitHub {
28     owner = "asb2m10";
29     repo = "dexed";
30     rev = "2c036316bcd512818aa9cc8129767ad9e0ec7132";
31     fetchSubmodules = true;
32     sha256 = "sha256-6buvA72YRlGjHWLPEZMr45lYYG6ZY+IWmylcHruX27g=";
33   };
35   postPatch = ''
36     # needs special setup on Linux, dunno if it can work on Darwin
37     # https://github.com/NixOS/nixpkgs/issues/19098
38     sed -i -e '/juce::juce_recommended_lto_flags/d' Source/CMakeLists.txt
39   '';
41   nativeBuildInputs = [
42     cmake
43     pkg-config
44   ];
46   buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
47     libX11
48     libXext
49     libXcursor
50     libXinerama
51     libXrandr
52     freetype
53     alsa-lib
54     libjack2
55   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
56     Accelerate
57     Cocoa
58     WebKit
59     MetalKit
60     simd
61     DiscRecording
62     CoreAudioKit
63   ];
65   # JUCE insists on only dlopen'ing these
66   NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isLinux (toString [
67     "-lX11"
68     "-lXext"
69     "-lXcursor"
70     "-lXinerama"
71     "-lXrandr"
72     "-ljack"
73   ]);
75   installPhase = let
76     vst3Dir = if stdenv.hostPlatform.isDarwin then "$out/Library/Audio/Plug-Ins/VST3" else "$out/lib/vst3";
77     # this one's a guess, don't know where ppl have agreed to put them yet
78     clapDir = if stdenv.hostPlatform.isDarwin then "$out/Library/Audio/Plug-Ins/CLAP" else "$out/lib/clap";
79     auDir = "$out/Library/Audio/Plug-Ins/Components";
80   in ''
81     runHook preInstall
83   '' + (if stdenv.hostPlatform.isDarwin then ''
84     mkdir -p $out/{Applications,bin}
85     mv Source/Dexed_artefacts/Release/Standalone/Dexed.app $out/Applications/
86     ln -s $out/{Applications/Dexed.app/Contents/MacOS,bin}/Dexed
87   '' else ''
88     install -Dm755 {Source/Dexed_artefacts/Release/Standalone,$out/bin}/Dexed
89   '') + ''
90     mkdir -p ${vst3Dir} ${clapDir}
91     mv Source/Dexed_artefacts/Release/VST3/* ${vst3Dir}
92     mv Source/Dexed_artefacts/Release/CLAP/* ${clapDir}
93   '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
94     mkdir -p ${auDir}
95     mv Source/Dexed_artefacts/Release/AU/* ${auDir}
96   '' + ''
98     runHook postInstall
99   '';
101   meta = with lib; {
102     description = "DX7 FM multi platform/multi format plugin";
103     mainProgram = "Dexed";
104     homepage = "https://asb2m10.github.io/dexed";
105     license = licenses.gpl3Only;
106     platforms = platforms.all;
107     maintainers = with maintainers; [ OPNA2608 ];
108   };