Skip to content

Commit

Permalink
show-midi: init at 0.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
minijackson committed Dec 31, 2023
1 parent 2749ef9 commit 2fda1c9
Showing 1 changed file with 83 additions and 0 deletions.
83 changes: 83 additions & 0 deletions pkgs/by-name/sh/show-midi/package.nix
Original file line number Diff line number Diff line change
@@ -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;
};
})

0 comments on commit 2fda1c9

Please sign in to comment.