summary refs log tree commit diff
path: root/pkgs/development/libraries/pipewire
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2022-01-08 06:11:59 +0100
committerGitHub <noreply@github.com>2022-01-08 06:11:59 +0100
commit283c47bc45cb91cc68115345581ba558cf6c7e76 (patch)
treed11f18e39cf14ecafd1a27991000cb3a244598de /pkgs/development/libraries/pipewire
parent3bec7624c137f877d8c4cd576f140018c645b0a8 (diff)
parent4909a1558256bd01dea4dc8f8cd6f2567d2458a7 (diff)
downloadnixpkgs-283c47bc45cb91cc68115345581ba558cf6c7e76.tar
nixpkgs-283c47bc45cb91cc68115345581ba558cf6c7e76.tar.gz
nixpkgs-283c47bc45cb91cc68115345581ba558cf6c7e76.tar.bz2
nixpkgs-283c47bc45cb91cc68115345581ba558cf6c7e76.tar.lz
nixpkgs-283c47bc45cb91cc68115345581ba558cf6c7e76.tar.xz
nixpkgs-283c47bc45cb91cc68115345581ba558cf6c7e76.tar.zst
nixpkgs-283c47bc45cb91cc68115345581ba558cf6c7e76.zip
Merge pull request #150548 from K900/wireplumber
wireplumber: init, add NixOS module
Diffstat (limited to 'pkgs/development/libraries/pipewire')
-rw-r--r--pkgs/development/libraries/pipewire/wireplumber.nix82
1 files changed, 82 insertions, 0 deletions
diff --git a/pkgs/development/libraries/pipewire/wireplumber.nix b/pkgs/development/libraries/pipewire/wireplumber.nix
new file mode 100644
index 00000000000..eba1b210590
--- /dev/null
+++ b/pkgs/development/libraries/pipewire/wireplumber.nix
@@ -0,0 +1,82 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, nix-update-script
+, # base build deps
+  meson
+, pkg-config
+, ninja
+, # docs build deps
+  python3
+, doxygen
+, graphviz
+, # GI build deps
+  gobject-introspection
+, # runtime deps
+  glib
+, systemd
+, lua5_4
+, pipewire
+, # options
+  enableDocs ? true
+, enableGI ? stdenv.hostPlatform == stdenv.buildPlatform
+}:
+let
+  mesonEnableFeature = b: if b then "enabled" else "disabled";
+in
+stdenv.mkDerivation rec {
+  pname = "wireplumber";
+  version = "0.4.6";
+
+  outputs = [ "out" "dev" ] ++ lib.optional enableDocs "doc";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "pipewire";
+    repo = "wireplumber";
+    rev = version;
+    sha256 = "sha256-y+Gj9EZn67W3U81zXgp+6JAFxZSZTwwT0TB3Kueb/Tw=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    pkg-config
+    ninja
+  ] ++ lib.optionals enableDocs [
+    graphviz
+  ] ++ lib.optionals enableGI [
+    gobject-introspection
+  ] ++ lib.optionals (enableDocs || enableGI) [
+    doxygen
+    (python3.withPackages (ps: with ps;
+    lib.optionals enableDocs [ sphinx sphinx_rtd_theme breathe ] ++
+      lib.optionals enableGI [ lxml ]
+    ))
+  ];
+
+  buildInputs = [
+    glib
+    systemd
+    lua5_4
+    pipewire
+  ];
+
+  mesonFlags = [
+    "-Dsystem-lua=true"
+    "-Delogind=disabled"
+    "-Ddoc=${mesonEnableFeature enableDocs}"
+    "-Dintrospection=${mesonEnableFeature enableGI}"
+  ];
+
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
+
+  meta = with lib; {
+    description = "A modular session / policy manager for PipeWire";
+    homepage = "https://pipewire.org";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ k900 ];
+  };
+}