1{ stdenv, fetchurl, boost, mpd_clientlib, ncurses, pkgconfig, readline
2, libiconv, icu
3, outputsSupport ? false # outputs screen
4, visualizerSupport ? false, fftw ? null # visualizer screen
5, clockSupport ? false # clock screen
6, unicodeSupport ? true # utf8 support
7, curlSupport ? true, curl ? null # allow fetching lyrics from the internet
8, taglibSupport ? true, taglib ? null # tag editor
9}:
10
11assert visualizerSupport -> (fftw != null);
12assert curlSupport -> (curl != null);
13assert taglibSupport -> (taglib != null);
14
15with stdenv.lib;
16stdenv.mkDerivation rec {
17 name = "ncmpcpp-${version}";
18 version = "0.7.5";
19
20 src = fetchurl {
21 url = "http://ncmpcpp.rybczak.net/stable/${name}.tar.bz2";
22 sha256 = "0zg084m06y7dd8ccy6aq9hx8q7qi2s5kl0br5139hrmk40q68kvy";
23 };
24
25 configureFlags = [ "BOOST_LIB_SUFFIX=" ]
26 ++ optional outputsSupport "--enable-outputs"
27 ++ optional visualizerSupport "--enable-visualizer --with-fftw"
28 ++ optional clockSupport "--enable-clock"
29 ++ optional unicodeSupport "--enable-unicode"
30 ++ optional curlSupport "--with-curl"
31 ++ optional taglibSupport "--with-taglib";
32
33 nativeBuildInputs = [ pkgconfig ];
34
35 buildInputs = [ boost mpd_clientlib ncurses readline libiconv icu ]
36 ++ optional curlSupport curl
37 ++ optional visualizerSupport fftw
38 ++ optional taglibSupport taglib;
39
40 meta = {
41 description = "A featureful ncurses based MPD client inspired by ncmpc";
42 homepage = http://ncmpcpp.rybczak.net/;
43 license = licenses.gpl2Plus;
44 maintainers = with maintainers; [ lovek323 mornfall koral ];
45 platforms = platforms.linux;
46 };
47}