Luke Granger-Brown
57725ef3ec
git-subtree-dir: third_party/nixpkgs git-subtree-split: 76612b17c0ce71689921ca12d9ffdc9c23ce40b2
78 lines
1.8 KiB
Nix
78 lines
1.8 KiB
Nix
{ lib
|
|
, stdenv
|
|
, mkDerivation
|
|
, fetchFromGitHub
|
|
, alsa-lib
|
|
, cmake
|
|
, libpulseaudio
|
|
, libmt32emu
|
|
, pkg-config
|
|
, portaudio
|
|
, qtbase
|
|
, qtmultimedia
|
|
, withJack ? stdenv.hostPlatform.isUnix, libjack2
|
|
}:
|
|
|
|
let
|
|
char2underscore = char: str: lib.replaceStrings [ char ] [ "_" ] str;
|
|
in
|
|
mkDerivation rec {
|
|
pname = "mt32emu-qt";
|
|
version = "1.11.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "munt";
|
|
repo = "munt";
|
|
rev = "${char2underscore "-" pname}_${char2underscore "." version}";
|
|
sha256 = "sha256-PqYPYnKPlnU3PByxksBscl4GqDRllQdmD6RWpy/Ura0=";
|
|
};
|
|
|
|
postPatch = ''
|
|
sed -i -e '/add_subdirectory(mt32emu)/d' CMakeLists.txt
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
libmt32emu
|
|
portaudio
|
|
qtbase
|
|
qtmultimedia
|
|
]
|
|
++ lib.optionals stdenv.hostPlatform.isLinux [
|
|
alsa-lib
|
|
libpulseaudio
|
|
]
|
|
++ lib.optional withJack libjack2;
|
|
|
|
dontFixCmake = true;
|
|
|
|
cmakeFlags = [
|
|
"-Dmt32emu-qt_USE_PULSEAUDIO_DYNAMIC_LOADING=OFF"
|
|
"-Dmunt_WITH_MT32EMU_QT=ON"
|
|
"-Dmunt_WITH_MT32EMU_SMF2WAV=OFF"
|
|
];
|
|
|
|
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
|
mkdir $out/Applications
|
|
mv $out/bin/${pname}.app $out/Applications/
|
|
ln -s $out/{Applications/${pname}.app/Contents/MacOS,bin}/${pname}
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "https://munt.sourceforge.net/";
|
|
description = "Synthesizer application built on Qt and libmt32emu";
|
|
mainProgram = "mt32emu-qt";
|
|
longDescription = ''
|
|
mt32emu-qt is a synthesiser application that facilitates both realtime
|
|
synthesis and conversion of pre-recorded SMF files to WAVE making use of
|
|
the mt32emu library and the Qt framework.
|
|
'';
|
|
license = with licenses; [ gpl3Plus ];
|
|
maintainers = with maintainers; [ OPNA2608 ];
|
|
platforms = platforms.all;
|
|
};
|
|
}
|