Commit 2d31447b authored by eljamm's avatar eljamm
Browse files

vaporizer2: init at 3.5.0-unstable-2024-09-14

parent 1bdb7730
Loading
Loading
Loading
Loading
+77 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchFromGitHub,
  cmake,
  juce,
  pkg-config,
  alsa-lib,
  fftwFloat,
  fontconfig,
  freetype,
  libGL,
  libX11,
  libXcursor,
  libXext,
  libXinerama,
  libXrandr,
  libjack2,
}:

stdenv.mkDerivation (finalAttrs: {
  pname = "vaporizer2";
  version = "3.5.0-unstable-2024-09-14";

  src = fetchFromGitHub {
    owner = "VASTDynamics";
    repo = "Vaporizer2";
    rev = "1c56c4be304255f1c397dad725ea784f15a55ef5";
    hash = "sha256-/J0HqiXc84JEIsEyb1MlzAqpmJZEe8jP07fEcJSEZz8=";
    fetchSubmodules = true;
  };

  strictDeps = true;

  nativeBuildInputs = [
    cmake
    juce
    pkg-config
  ];

  buildInputs = [
    alsa-lib
    fftwFloat
    fontconfig
    freetype
    libGL
    libX11
    libXcursor
    libXext
    libXinerama
    libXrandr
    libjack2
  ];

  cmakeFlags = [
    (lib.cmakeFeature "USE_SYSTEM_JUCE" "ON")
  ];

  # LTO needs special setup on Linux
  postPatch = ''
    substituteInPlace CMakeLists.txt \
      --replace-fail 'juce::juce_recommended_lto_flags' '# Not forcing LTO'
  '';

  meta = {
    description = "Wavetable synthesizer";
    longDescription = ''
      Hybrid wavetable additive / subtractive VST / AU / AAX synthesizer / sampler workstation plugin
    '';
    homepage = "https://www.vast-dynamics.com/?q=Vaporizer2";
    downloadPage = "https://github.com/VASTDynamics/Vaporizer2";
    license = lib.licenses.gpl3Only;
    maintainers = with lib.maintainers; [ eljamm ];
    mainProgram = "VASTvaporizer2";
    platforms = lib.platforms.linux;
  };
})