1{ stdenv, fetchFromGitHub, fftw, freeglut, qt5
2, alsaSupport ? true, alsaLib ? null
3, jackSupport ? false, libjack2 ? null
4, portaudioSupport ? false, portaudio ? null }:
5
6assert alsaSupport -> alsaLib != null;
7assert jackSupport -> libjack2 != null;
8assert portaudioSupport -> portaudio != null;
9
10let version = "1.0.8"; in
11stdenv.mkDerivation {
12 name = "fmit-${version}";
13
14 src = fetchFromGitHub {
15 sha256 = "04s7xcgmi5g58lirr48vf203n1jwdxf981x1p6ysbax24qwhs2kd";
16 rev = "v${version}";
17 repo = "fmit";
18 owner = "gillesdegottex";
19 };
20
21 buildInputs = [ fftw freeglut qt5.base qt5.multimedia ]
22 ++ stdenv.lib.optional alsaSupport [ alsaLib ]
23 ++ stdenv.lib.optional jackSupport [ libjack2 ]
24 ++ stdenv.lib.optional portaudioSupport [ portaudio ];
25
26 configurePhase = ''
27 mkdir build
28 cd build
29 qmake \
30 CONFIG+=${stdenv.lib.optionalString alsaSupport "acs_alsa"} \
31 CONFIG+=${stdenv.lib.optionalString jackSupport "acs_jack"} \
32 CONFIG+=${stdenv.lib.optionalString portaudioSupport "acs_portaudio"} \
33 PREFIX="$out" PREFIXSHORTCUT="$out" \
34 ../fmit.pro
35 '';
36
37 enableParallelBuilding = true;
38
39 meta = with stdenv.lib; {
40 inherit version;
41 description = "Free Musical Instrument Tuner";
42 longDescription = ''
43 FMIT is a graphical utility for tuning musical instruments, with error
44 and volume history, and advanced features.
45 '';
46 homepage = http://gillesdegottex.github.io/fmit/;
47 license = licenses.gpl3Plus;
48 platforms = platforms.linux;
49 maintainers = with maintainers; [ nckx ];
50 };
51}