about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2023-01-09 00:59:21 +0100
committerGitHub <noreply@github.com>2023-01-09 00:59:21 +0100
commitd9c288066edaf70b34fc1b6ca0254132f502f01c (patch)
treee7778f4e521f5d165445ca4257726589b8fe7f46
parent2eb836b43e4211b3b94f1ddcacf83bc7cb5d35f3 (diff)
parenta23af657103e8a368907fe2012b8b92f8df735bd (diff)
Merge pull request #201097 from zhaofengli/cubeb-darwin
-rw-r--r--pkgs/development/libraries/audio/cubeb/default.nix34
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 26 insertions, 12 deletions
diff --git a/pkgs/development/libraries/audio/cubeb/default.nix b/pkgs/development/libraries/audio/cubeb/default.nix
index 7fc7f87a20ae9..baad8a1efd645 100644
--- a/pkgs/development/libraries/audio/cubeb/default.nix
+++ b/pkgs/development/libraries/audio/cubeb/default.nix
@@ -1,14 +1,28 @@
 { lib, stdenv, fetchFromGitHub
 , cmake
 , pkg-config
+, alsa-lib
 , jack2
-, pulseaudio
+, libpulseaudio
 , sndio
 , speexdsp
-, lazyLoad ? true
+, AudioUnit
+, CoreAudio
+, CoreServices
+, lazyLoad ? !stdenv.isDarwin
 }:
 
-stdenv.mkDerivation {
+assert lib.assertMsg (stdenv.isDarwin -> !lazyLoad) "cubeb: lazyLoad is inert on Darwin";
+
+let
+  backendLibs = [
+    alsa-lib
+    jack2
+    libpulseaudio
+    sndio
+  ];
+
+in stdenv.mkDerivation {
   pname = "cubeb";
   version = "unstable-2022-10-18";
 
@@ -24,12 +38,10 @@ stdenv.mkDerivation {
     pkg-config
   ];
 
-  buildInputs = [
-    jack2
-    pulseaudio
-    sndio
-    speexdsp
-  ];
+  buildInputs = [ speexdsp ] ++ (
+    if stdenv.isDarwin then [ AudioUnit CoreAudio CoreServices ]
+    else backendLibs
+  );
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
@@ -43,14 +55,14 @@ stdenv.mkDerivation {
 
   passthru = {
     # For downstream users when lazyLoad is true
-    backendLibs = [ jack2 pulseaudio sndio speexdsp ];
+    backendLibs = lib.optionals lazyLoad backendLibs;
   };
 
   meta = with lib; {
     description = "Cross platform audio library";
     homepage = "https://github.com/mozilla/cubeb";
     license = licenses.isc;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ zhaofengli ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1f06f99541842..63344ea39a38e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18771,7 +18771,9 @@ with pkgs;
     };
   });
 
-  cubeb = callPackage ../development/libraries/audio/cubeb { };
+  cubeb = callPackage ../development/libraries/audio/cubeb {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio CoreServices;
+  };
 
   hercules-ci-agent = callPackage ../development/tools/continuous-integration/hercules-ci-agent { };