{ lib, stdenv, fetchFromGitHub, cmake, pkg-config , libjack2, alsaLib, freetype, libX11, libXrandr, libXinerama, libXext, libXcursor }: let # Derived from subprojects/function2.wrap function2 = rec { version = "4.1.0"; src = fetchFromGitHub { owner = "Naios"; repo = "function2"; rev = version; hash = "sha256-JceZU8ZvtYhFheh8BjMvjjZty4hcYxHEK+IIo5X4eSk="; }; }; juce = rec { version = "unstable-2021-04-07"; src = fetchFromGitHub { owner = "juce-framework"; repo = "JUCE"; rev = "1a5fb5992a1a4e28e998708ed8dce2cc864a30d7"; sha256= "1ri7w4sz3sy5xilibg53ls9526fx7jwbv8rc54ccrqfhxqyin308"; }; }; in stdenv.mkDerivation rec { pname = "diopser"; version = "unstable-2021-5-13"; src = fetchFromGitHub { owner = "robbert-vdh"; repo = pname; fetchSubmodules = true; rev = "d5fdc92f1caf5a828e071dac99e106e58f06d84d"; sha256 = "06y1h895yxh44gp4vxzrna59lf7nlfw7aacd3kk4l1g56jhy9pdx"; }; postUnpack = '' ( cd "$sourceRoot" cp -R --no-preserve=mode,ownership ${function2.src} function2 cp -R --no-preserve=mode,ownership ${juce.src} JUCE sed -i 's@CPMAddPackage("gh:juce-framework/JUCE.*@add_subdirectory(JUCE)@g' CMakeLists.txt sed -i 's@CPMAddPackage("gh:Naios/function2.*@add_subdirectory(function2)@g' CMakeLists.txt patchShebangs . ) ''; installPhase = '' mkdir -p $out/lib/vst3 cp -r Diopser_artefacts/Release/VST3/Diopser.vst3 $out/lib/vst3 ''; nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ libjack2 alsaLib freetype libX11 libXrandr libXinerama libXext libXcursor ]; cmakeFlags = [ "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar" "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib" ]; meta = with lib; { description = "A totally original phase rotation plugin"; homepage = "https://github.com/robbert-vdh/diopser"; license = licenses.gpl3Plus; maintainers = with maintainers; [ magnetophon ]; platforms = platforms.all; }; }