|
|
|
@ -1,40 +1,46 @@ |
|
|
|
|
{ lib, stdenv, fetchFromGitHub, cmake |
|
|
|
|
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config |
|
|
|
|
, alsaSupport ? !stdenv.isDarwin, alsa-lib |
|
|
|
|
, dbusSupport ? !stdenv.isDarwin, dbus |
|
|
|
|
, pipewireSupport ? !stdenv.isDarwin, pipewire |
|
|
|
|
, pulseSupport ? !stdenv.isDarwin, libpulseaudio |
|
|
|
|
, CoreServices, AudioUnit, AudioToolbox |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec { |
|
|
|
|
pname = "openal-soft"; |
|
|
|
|
version = "1.21.1"; |
|
|
|
|
version = "1.22.0"; |
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "kcat"; |
|
|
|
|
repo = "openal-soft"; |
|
|
|
|
rev = version; |
|
|
|
|
sha256 = "sha256-rgc6kjXaZb6sCR+e9Gu7BEEHIiCHMygpLIeSqgWkuAg="; |
|
|
|
|
sha256 = "sha256-Y2KhPkwtG6tBzUhSqwV2DVnOjZwxPihidLKahjaIvyU="; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
# this will make it find its own data files (e.g. HRTF profiles) |
|
|
|
|
# without any other configuration |
|
|
|
|
patches = [ ./search-out.patch ]; |
|
|
|
|
postPatch = '' |
|
|
|
|
substituteInPlace alc/helpers.cpp \ |
|
|
|
|
substituteInPlace core/helpers.cpp \ |
|
|
|
|
--replace "@OUT@" $out |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
strictDeps = true; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ cmake ]; |
|
|
|
|
nativeBuildInputs = [ cmake pkg-config ]; |
|
|
|
|
|
|
|
|
|
buildInputs = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) stdenv.cc.libc |
|
|
|
|
++ lib.optional alsaSupport alsa-lib |
|
|
|
|
++ lib.optional dbusSupport dbus |
|
|
|
|
++ lib.optional pipewireSupport pipewire |
|
|
|
|
++ lib.optional pulseSupport libpulseaudio |
|
|
|
|
++ lib.optionals stdenv.isDarwin [ CoreServices AudioUnit AudioToolbox ]; |
|
|
|
|
|
|
|
|
|
NIX_LDFLAGS = toString ( |
|
|
|
|
lib.optional alsaSupport "-lasound" |
|
|
|
|
++ lib.optional pulseSupport "-lpulse"); |
|
|
|
|
cmakeFlags = [ |
|
|
|
|
# Automatically links dependencies without having to rely on dlopen, thus |
|
|
|
|
# removes the need for NIX_LDFLAGS. |
|
|
|
|
"-DALSOFT_DLOPEN=OFF" |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
meta = with lib; { |
|
|
|
|
description = "OpenAL alternative"; |
|
|
|
|