From 2fda1c969d6fd3dd6c6ab616b17f7f0d4d211ca7 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sun, 31 Dec 2023 12:48:55 +0100 Subject: [PATCH] show-midi: init at 0.8.0 --- pkgs/by-name/sh/show-midi/package.nix | 83 +++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 pkgs/by-name/sh/show-midi/package.nix diff --git a/pkgs/by-name/sh/show-midi/package.nix b/pkgs/by-name/sh/show-midi/package.nix new file mode 100644 index 0000000000000..e1a433fc8fb49 --- /dev/null +++ b/pkgs/by-name/sh/show-midi/package.nix @@ -0,0 +1,83 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, alsa-lib +, freetype +, libX11 +, libXrandr +, libXinerama +, libXext +, libXcursor +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "show-midi"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "gbevin"; + repo = "ShowMIDI"; + rev = finalAttrs.version; + hash = "sha256-BtkfeHZyeSZH6wIojj3dd2nCS5R535dSWsis/hXJbPc="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + alsa-lib + freetype + libX11 + libXrandr + libXinerama + libXext + libXcursor + ]; + + enableParallelBuilding = true; + + makeFlags = [ + "-C Builds/LinuxMakefile" + "CONFIG=Release" + # Specify targets by hand, because it tries to build VST by default, + # even though it's not supported in JUCE anymore + "LV2" + "LV2_MANIFEST_HELPER" + "Standalone" + "VST3" + "VST3_MANIFEST_HELPER" + ]; + + installPhase = '' + runHook preInstall + + install -Dt $out/share/ShowMIDI/themes Themes/* + + mkdir -p $out/bin $out/lib/lv2 $out/lib/vst3 + cd Builds/LinuxMakefile/build/ + cp -r ShowMIDI.lv2 $out/lib/lv2 + cp -r ShowMIDI.vst3 $out/lib/vst3 + cp ShowMIDI $out/bin + + runHook postInstall + ''; + + # JUCE dlopens these, make sure they are in rpath + # Otherwise, segfault will happen + env.NIX_LDFLAGS = toString [ + "-lX11" + "-lXext" + "-lXcursor" + "-lXinerama" + "-lXrandr" + ]; + + meta = with lib; { + description = "Multi-platform GUI application to effortlessly visualize MIDI activity"; + homepage = "https://github.com/gbevin/ShowMIDI"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ minijackson ]; + mainProgram = "ShowMIDI"; + platforms = platforms.linux; + }; +})