{ lib, mkDerivation, fetchFromGitHub, fftw, qtbase, qtmultimedia, qmake, itstool, wrapQtAppsHook , alsaSupport ? true, alsa-lib ? null , jackSupport ? false, libjack2 ? null , portaudioSupport ? false, portaudio ? null }: assert alsaSupport -> alsa-lib != null; assert jackSupport -> libjack2 != null; assert portaudioSupport -> portaudio != null; mkDerivation rec { pname = "fmit"; version = "1.2.14"; src = fetchFromGitHub { owner = "gillesdegottex"; repo = "fmit"; rev = "v${version}"; sha256 = "1q062pfwz2vr9hbfn29fv54ip3jqfd9r99nhpr8w7mn1csy38azx"; }; nativeBuildInputs = [ qmake itstool wrapQtAppsHook ]; buildInputs = [ fftw qtbase qtmultimedia ] ++ lib.optionals alsaSupport [ alsa-lib ] ++ lib.optionals jackSupport [ libjack2 ] ++ lib.optionals portaudioSupport [ portaudio ]; postPatch = '' substituteInPlace fmit.pro --replace '$$FMITVERSIONGITPRO' '${version}' ''; preConfigure = '' qmakeFlags="$qmakeFlags \ CONFIG+=${lib.optionalString alsaSupport "acs_alsa"} \ CONFIG+=${lib.optionalString jackSupport "acs_jack"} \ CONFIG+=${lib.optionalString portaudioSupport "acs_portaudio"} \ PREFIXSHORTCUT=$out" ''; postInstall = '' mkdir -p $out/share/applications ln -s $out/fmit.desktop $out/share/applications/fmit.desktop mkdir -p $out/share/icons/hicolor/128x128/apps ln -s $out/fmit.png $out/share/icons/hicolor/128x128/apps/fmit.png mkdir -p $out/share/icons/hicolor/scalable/apps ln -s $out/fmit.svg $out/share/icons/hicolor/scalable/apps/fmit.svg ''; meta = with lib; { description = "Free Musical Instrument Tuner"; longDescription = '' FMIT is a graphical utility for tuning musical instruments, with error and volume history, and advanced features. ''; homepage = "http://gillesdegottex.github.io/fmit/"; license = licenses.gpl3Plus; platforms = platforms.linux; }; }