smap: init at 0.1.12 (#371402)
[NixPkgs.git] / pkgs / applications / audio / munt / mt32emu-qt.nix
blob0a75f0620383c0394f1c8b2041dc00641cf3f039
2   lib,
3   stdenv,
4   mkDerivation,
5   fetchFromGitHub,
6   alsa-lib,
7   cmake,
8   libpulseaudio,
9   libmt32emu,
10   pkg-config,
11   portaudio,
12   qtbase,
13   qtmultimedia,
14   withJack ? stdenv.hostPlatform.isUnix,
15   libjack2,
18 let
19   char2underscore = char: str: lib.replaceStrings [ char ] [ "_" ] str;
21 mkDerivation rec {
22   pname = "mt32emu-qt";
23   version = "1.11.1";
25   src = fetchFromGitHub {
26     owner = "munt";
27     repo = "munt";
28     rev = "${char2underscore "-" pname}_${char2underscore "." version}";
29     sha256 = "sha256-PqYPYnKPlnU3PByxksBscl4GqDRllQdmD6RWpy/Ura0=";
30   };
32   postPatch = ''
33     sed -i -e '/add_subdirectory(mt32emu)/d' CMakeLists.txt
34   '';
36   nativeBuildInputs = [
37     cmake
38     pkg-config
39   ];
41   buildInputs =
42     [
43       libmt32emu
44       portaudio
45       qtbase
46       qtmultimedia
47     ]
48     ++ lib.optionals stdenv.hostPlatform.isLinux [
49       alsa-lib
50       libpulseaudio
51     ]
52     ++ lib.optional withJack libjack2;
54   dontFixCmake = true;
56   cmakeFlags = [
57     "-Dmt32emu-qt_USE_PULSEAUDIO_DYNAMIC_LOADING=OFF"
58     "-Dmunt_WITH_MT32EMU_QT=ON"
59     "-Dmunt_WITH_MT32EMU_SMF2WAV=OFF"
60   ];
62   postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
63     mkdir $out/Applications
64     mv $out/bin/${pname}.app $out/Applications/
65     ln -s $out/{Applications/${pname}.app/Contents/MacOS,bin}/${pname}
66   '';
68   meta = with lib; {
69     homepage = "https://munt.sourceforge.net/";
70     description = "Synthesizer application built on Qt and libmt32emu";
71     mainProgram = "mt32emu-qt";
72     longDescription = ''
73       mt32emu-qt is a synthesiser application that facilitates both realtime
74       synthesis and conversion of pre-recorded SMF files to WAVE making use of
75       the mt32emu library and the Qt framework.
76     '';
77     license = with licenses; [ gpl3Plus ];
78     maintainers = with maintainers; [ OPNA2608 ];
79     platforms = platforms.all;
80   };