diff --git a/pkgs/by-name/di/distrho-ports/package.nix b/pkgs/by-name/di/distrho-ports/package.nix index 366b6960f415..186d87c3d0a6 100644 --- a/pkgs/by-name/di/distrho-ports/package.nix +++ b/pkgs/by-name/di/distrho-ports/package.nix @@ -16,12 +16,18 @@ # empty means build all available plugins plugins ? [ ], + + buildVST3 ? true, + buildLV2 ? true, + buildVST2 ? true, }: let rpathLibs = [ fftwFloat ]; + + mesonPlugins = lib.mesonOption "plugins" "[${lib.concatMapStringsSep "," (x: "\"${x}\"") plugins}]"; in stdenv.mkDerivation { pname = "distrho-ports"; @@ -52,19 +58,27 @@ stdenv.mkDerivation { env.NIX_CFLAGS_COMPILE = toString [ "-fpermissive" ]; - postFixup = lib.optionalString (lib.elem "vitalium" plugins || plugins == [ ]) '' - for file in \ - $out/lib/lv2/vitalium.lv2/vitalium.so \ - $out/lib/vst/vitalium.so \ - $out/lib/vst3/vitalium.vst3/Contents/x86_64-linux/vitalium.so - do - patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}:$(patchelf --print-rpath $file)" $file - done - ''; + postFixup = + let + files = [ + (lib.optionalString buildLV2 "$out/lib/lv2/vitalium.lv2/vitalium.so") + (lib.optionalString buildVST2 "$out/lib/vst/vitalium.so") + (lib.optionalString buildVST3 "$out/lib/vst3/vitalium.vst3/Contents/x86_64-linux/vitalium.so") + ]; + in + lib.optionalString (lib.elem "vitalium" plugins || plugins == [ ]) '' + for file in ${lib.concatMapStringsSep " \\\n" (x: "${x}") files} + do + patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}:$(patchelf --print-rpath $file)" $file + done + ''; - mesonFlags = lib.optional (plugins != [ ]) ( - lib.mesonOption "plugins" "[${lib.concatMapStringsSep "," (x: "\"${x}\"") plugins}]" - ); + mesonFlags = [ + (lib.mesonBool "build-lv2" buildLV2) + (lib.mesonBool "build-vst2" buildVST2) + (lib.mesonBool "build-vst3" buildVST3) + ] + ++ lib.optional (plugins != [ ]) mesonPlugins; meta = { homepage = "http://distrho.sourceforge.net/ports";