ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
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 = "A 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;
|
|
};
|
|
}
|