Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / pipewire / wireplumber.nix
blob37dea2ece86a8b06cead6b55efce62ce75cce69e
1 { lib
2 , stdenv
3 , fetchFromGitLab
4 , nix-update-script
5 # base build deps
6 , meson
7 , pkg-config
8 , ninja
9 # docs build deps
10 , python3
11 , doxygen
12 , graphviz
13 # GI build deps
14 , gobject-introspection
15 # runtime deps
16 , glib
17 , systemd
18 , lua5_4
19 , pipewire
20 # options
21 , enableDocs ? true
22 , enableGI ? true
25 stdenv.mkDerivation rec {
26   pname = "wireplumber";
27   version = "0.4.15";
29   outputs = [ "out" "dev" ] ++ lib.optional enableDocs "doc";
31   src = fetchFromGitLab {
32     domain = "gitlab.freedesktop.org";
33     owner = "pipewire";
34     repo = "wireplumber";
35     rev = version;
36     hash = "sha256-VwzpPAVfoaV47O7OjXtPQj5s8zfH5rkB22Pdlg7u5Fg=";
37   };
39   nativeBuildInputs = [
40     meson
41     pkg-config
42     ninja
43   ] ++ lib.optionals enableDocs [
44     graphviz
45   ] ++ lib.optionals enableGI [
46     gobject-introspection
47   ] ++ lib.optionals (enableDocs || enableGI) [
48     doxygen
49     (python3.pythonOnBuildForHost.withPackages (ps: with ps;
50       lib.optionals enableDocs [ sphinx sphinx-rtd-theme breathe ]
51       ++ lib.optionals enableGI [ lxml ]
52     ))
53   ];
55   buildInputs = [
56     glib
57     systemd
58     lua5_4
59     pipewire
60   ];
62   mesonFlags = [
63     (lib.mesonBool "system-lua" true)
64     (lib.mesonEnable "elogind" false)
65     (lib.mesonEnable "doc" enableDocs)
66     (lib.mesonEnable "introspection" enableGI)
67     (lib.mesonBool "systemd-system-service" true)
68     (lib.mesonOption "systemd-system-unit-dir" "${placeholder "out"}/lib/systemd/system")
69     (lib.mesonOption "sysconfdir" "/etc")
70   ];
72   passthru.updateScript = nix-update-script { };
74   meta = with lib; {
75     description = "A modular session / policy manager for PipeWire";
76     homepage = "https://pipewire.org";
77     license = licenses.mit;
78     platforms = platforms.linux;
79     maintainers = with maintainers; [ k900 ];
80   };