1{ lib
2, stdenv
3, fetchurl
4, boost
5, libmpdclient
6, ncurses
7, pkg-config
8, readline
9, libiconv
10, icu
11, curl
12, outputsSupport ? true # outputs screen
13, visualizerSupport ? false, fftw # visualizer screen
14, clockSupport ? true # clock screen
15, taglibSupport ? true, taglib # tag editor
16}:
17
18stdenv.mkDerivation rec {
19 pname = "ncmpcpp";
20 version = "0.9.2";
21
22 src = fetchurl {
23 url = "https://rybczak.net/ncmpcpp/stable/${pname}-${version}.tar.bz2";
24 sha256 = "sha256-+qv2FXyMsbJKBZryduFi+p+aO5zTgQxDuRKIYMk4Ohs=";
25 };
26
27 enableParallelBuilding = true;
28
29 strictDeps = true;
30
31 configureFlags = [ "BOOST_LIB_SUFFIX=" ]
32 ++ lib.optional outputsSupport "--enable-outputs"
33 ++ lib.optional visualizerSupport "--enable-visualizer --with-fftw"
34 ++ lib.optional clockSupport "--enable-clock"
35 ++ lib.optional taglibSupport "--with-taglib";
36
37 nativeBuildInputs = [ pkg-config ]
38 ++ lib.optional taglibSupport taglib;
39
40 buildInputs = [ boost libmpdclient ncurses readline libiconv icu curl ]
41 ++ lib.optional visualizerSupport fftw
42 ++ lib.optional taglibSupport taglib;
43
44 meta = with lib; {
45 description = "A featureful ncurses based MPD client inspired by ncmpc";
46 homepage = "https://rybczak.net/ncmpcpp/";
47 changelog = "https://github.com/ncmpcpp/ncmpcpp/blob/${version}/CHANGELOG.md";
48 license = licenses.gpl2Plus;
49 maintainers = with maintainers; [ jfrankenau koral lovek323 ];
50 platforms = platforms.all;
51 };
52}