python312Packages.types-aiobotocore: 2.15.2 -> 2.15.2.post3 (#361801)
[NixPkgs.git] / pkgs / by-name / sh / show-midi / package.nix
blobc7c16d1d15b9dc4e53bdb37e676a896d6be9a0bf
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , pkg-config
5 , alsa-lib
6 , freetype
7 , libX11
8 , libXrandr
9 , libXinerama
10 , libXext
11 , libXcursor
12 , makeDesktopItem
13 , copyDesktopItems
16 stdenv.mkDerivation (finalAttrs: {
17   pname = "show-midi";
18   version = "1.0.1";
20   src = fetchFromGitHub {
21     owner = "gbevin";
22     repo = "ShowMIDI";
23     rev = finalAttrs.version;
24     hash = "sha256-jANrFZqJZZMTGyNa0sIthoQzaDMdLzpGZqHfxNw8hDg=";
25     fetchSubmodules = true;
26   };
28   nativeBuildInputs = [
29     pkg-config
30     copyDesktopItems
31   ];
32   buildInputs = [
33     alsa-lib
34     freetype
35     libX11
36     libXrandr
37     libXinerama
38     libXext
39     libXcursor
40   ];
42   enableParallelBuilding = true;
44   makeFlags = [
45     "-C Builds/LinuxMakefile"
46     "CONFIG=Release"
47     # Specify targets by hand, because it tries to build VST by default,
48     # even though it's not supported in JUCE anymore
49     "LV2"
50     "LV2_MANIFEST_HELPER"
51     "Standalone"
52     "VST3"
53     "VST3_MANIFEST_HELPER"
54   ];
56   installPhase = ''
57     runHook preInstall
59     install -Dt $out/share/ShowMIDI/themes Themes/*
61     install -D Design/icon.png $out/share/icons/hicolor/1024x1024/apps/show-midi.png
63     mkdir -p $out/bin $out/lib/lv2 $out/lib/vst3
64     cd Builds/LinuxMakefile/build/
65     cp -r ShowMIDI.lv2 $out/lib/lv2
66     cp -r ShowMIDI.vst3 $out/lib/vst3
67     cp ShowMIDI $out/bin
69     runHook postInstall
70   '';
72   desktopItems = [(makeDesktopItem {
73     name = "ShowMIDI";
74     exec = finalAttrs.meta.mainProgram;
75     comment = finalAttrs.meta.description;
76     type = "Application";
77     icon = "show-midi";
78     desktopName = "ShowMIDI";
79     categories = [ "Audio" ];
80   })];
82   # JUCE dlopens these, make sure they are in rpath
83   # Otherwise, segfault will happen
84   env.NIX_LDFLAGS = toString [
85     "-lX11"
86     "-lXext"
87     "-lXcursor"
88     "-lXinerama"
89     "-lXrandr"
90   ];
92   meta = with lib; {
93     description = "Multi-platform GUI application to effortlessly visualize MIDI activity";
94     homepage = "https://github.com/gbevin/ShowMIDI";
95     license = licenses.gpl3Only;
96     maintainers = with maintainers; [ minijackson ];
97     mainProgram = "ShowMIDI";
98     platforms = platforms.linux;
99   };