commit:     e50776f608e30a41a6a59d734d9a7d871d939ab4
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 21 03:00:24 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Aug 21 03:06:47 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e50776f6

media-libs/openal: fix automagic PipeWire dependency (and others)

Not sure why I didn't poke at these when I looked at sndio, but oh well.

* Fix automagic issues for all backends, including newly-added PipeWire.

* The PipeWire support is flaky with older versions, looks like an ifdef
is subtly wrong, but given how fast PW is moving anyway & the changes
in the ecosystem (see NEWS item for migration w/ USE=sound-server), we don't
want people running an older PW anyway, so depend on a newer version.

* Disable CMake unused argument warning as it's a false positive, as
the backend options are conditionally defined based on if deps found.

(Might in future want a regex / adopt the QA one for ./configure instead
to allow conditionally ignoring specific ones instead of blanket disable.)

Bug: https://bugs.gentoo.org/809314
Closes: https://bugs.gentoo.org/828674
Closes: https://bugs.gentoo.org/863200
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-libs/openal/metadata.xml            |  1 +
 media-libs/openal/openal-1.22.2-r1.ebuild | 91 +++++++++++++++++++++++++++++++
 2 files changed, 92 insertions(+)

diff --git a/media-libs/openal/metadata.xml b/media-libs/openal/metadata.xml
index 58a531d35b6a..82ef9b96fe93 100644
--- a/media-libs/openal/metadata.xml
+++ b/media-libs/openal/metadata.xml
@@ -6,6 +6,7 @@
                <name>Gentoo Sound project</name>
        </maintainer>
        <use>
+               <flag name="pipewire">Enable support for the 
<pkg>media-video/pipewire</pkg> audio backend</flag>
                <flag name="sndio">Enable support for the 
<pkg>media-sound/sndio</pkg> backend</flag>
        </use>
        <upstream>

diff --git a/media-libs/openal/openal-1.22.2-r1.ebuild 
b/media-libs/openal/openal-1.22.2-r1.ebuild
new file mode 100644
index 000000000000..787199b78e60
--- /dev/null
+++ b/media-libs/openal/openal-1.22.2-r1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# False positives because of REQUIRE vs BACKEND options() (conditionally set)
+# See bug #809314
+CMAKE_WARN_UNUSED_CLI=no
+inherit cmake-multilib
+
+MY_P="${PN}-soft-${PV}"
+
+DESCRIPTION="A software implementation of the OpenAL 3D audio API"
+HOMEPAGE="https://www.openal-soft.org/";
+SRC_URI="https://www.openal-soft.org/openal-releases/${MY_P}.tar.bz2";
+S="${WORKDIR}"/${MY_P}
+
+# See 
https://github.com/kcat/openal-soft/blob/e0097c18b82d5da37248c4823fde48b6e0002cdd/BSD-3Clause
+# Some components are under BSD
+LICENSE="LGPL-2+ BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv 
~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="
+       alsa coreaudio debug jack oss pipewire portaudio pulseaudio sdl sndio 
qt5
+       cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse4_1
+       cpu_flags_arm_neon
+"
+
+# PipeWire:
+# - See bug #863200 for PipeWire minimum version
+# - PW is in DEPEND although not linked against because we need configure to
+# find it anyway, but no :=.
+RDEPEND="
+       alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+       jack? ( virtual/jack[${MULTILIB_USEDEP}] )
+       pipewire? ( >=media-video/pipewire-0.3.50[${MULTILIB_USEDEP}] )
+       portaudio? ( media-libs/portaudio[${MULTILIB_USEDEP}] )
+       pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
+       qt5? (
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtwidgets:5
+       )
+       sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] )
+       sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="
+       ${RDEPEND}
+       oss? ( virtual/os-headers )
+"
+
+DOCS=( alsoftrc.sample docs/env-vars.txt docs/hrtf.txt ChangeLog README.md )
+
+src_configure() {
+       my_configure() {
+               local mycmakeargs=(
+                       # See bug #809314 for getting both options for backends
+                       -DALSOFT_{BACKEND,REQUIRE}_ALSA=$(usex alsa)
+                       -DALSOFT_{BACKEND,REQUIRE}_COREAUDIO=$(usex coreaudio)
+                       -DALSOFT_{BACKEND,REQUIRE}_JACK=$(usex jack)
+                       -DALSOFT_{BACKEND,REQUIRE}_OSS=$(usex oss)
+                       -DALSOFT_{BACKEND,REQUIRE}_PIPEWIRE=$(usex pipewire)
+                       -DALSOFT_{BACKEND,REQUIRE}_PORTAUDIO=$(usex portaudio)
+                       -DALSOFT_{BACKEND,REQUIRE}_PULSEAUDIO=$(usex pulseaudio)
+                       -DALSOFT_{BACKEND,REQUIRE}_SDL2=$(usex sdl)
+                       -DALSOFT_{BACKEND,REQUIRE}_SNDIO=$(usex sndio)
+
+                       -DALSOFT_UTILS=$(multilib_is_native_abi && echo "ON" || 
echo "OFF")
+                       -DALSOFT_NO_CONFIG_UTIL=$(usex qt5 
"$(multilib_is_native_abi && echo "OFF" || echo "ON")" ON)
+                        # EXAMPLES=OFF to avoid FFmpeg dependency, bug #481670
+                       -DALSOFT_EXAMPLES=OFF
+               )
+
+               # Avoid unused variable warnings, bug #738240
+               if use amd64 || use x86 ; then
+                       mycmakeargs+=(
+                               -DALSOFT_CPUEXT_SSE=$(usex cpu_flags_x86_sse)
+                               -DALSOFT_CPUEXT_SSE2=$(usex cpu_flags_x86_sse2)
+                               -DALSOFT_CPUEXT_SSE4_1=$(usex 
cpu_flags_x86_sse4_1)
+                       )
+               elif use arm || use arm64 ; then
+                       mycmakeargs+=(
+                               -DALSOFT_CPUEXT_NEON=$(usex cpu_flags_arm_neon)
+                       )
+               fi
+
+               cmake_src_configure
+       }
+
+       multilib_parallel_foreach_abi my_configure
+}

Reply via email to