diff options
Diffstat (limited to 'media-libs/cubeb/cubeb-0.2_p20211213.ebuild')
-rw-r--r-- | media-libs/cubeb/cubeb-0.2_p20211213.ebuild | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/media-libs/cubeb/cubeb-0.2_p20211213.ebuild b/media-libs/cubeb/cubeb-0.2_p20211213.ebuild new file mode 100644 index 000000000000..46cafe446b91 --- /dev/null +++ b/media-libs/cubeb/cubeb-0.2_p20211213.ebuild @@ -0,0 +1,110 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CARGO_OPTIONAL=1 +CRATES=" + bitflags-1.3.2 + cache-padded-1.2.0 + cc-1.0.72 + cmake-0.1.46 + cubeb-backend-0.9.0 + cubeb-core-0.9.0 + cubeb-sys-0.9.1 + libc-0.2.112 + pkg-config-0.3.24 + ringbuf-0.2.6 + semver-0.9.0 + semver-parser-0.7.0" +inherit cargo cmake + +CUBEB_COMMIT="773f16b7ea308392c05be3e290163d1f636e6024" +PULSERS_COMMIT="f2456201dbfdc467b80f0ff6bbb1b8a6faf7df02" + +DESCRIPTION="Cross-platform audio library" +HOMEPAGE="https://github.com/mozilla/cubeb/" +SRC_URI=" + https://github.com/mozilla/cubeb/archive/${CUBEB_COMMIT}.tar.gz -> ${P}.tar.gz + pulseaudio? ( rust? ( + https://github.com/mozilla/cubeb-pulse-rs/archive/${PULSERS_COMMIT}.tar.gz -> ${PN}-pulse-rs-${PV}.tar.gz + $(cargo_crate_uris) + ) )" +S="${WORKDIR}/${PN}-${CUBEB_COMMIT}" + +LICENSE="ISC pulseaudio? ( rust? ( || ( Apache-2.0 MIT ) ) )" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="alsa doc jack pulseaudio +rust sndio test" +RESTRICT="!test? ( test )" + +RDEPEND=" + media-libs/speexdsp + alsa? ( media-libs/alsa-lib ) + jack? ( virtual/jack ) + pulseaudio? ( media-sound/pulseaudio ) + sndio? ( media-sound/sndio:= )" +DEPEND=" + ${RDEPEND} + test? ( dev-cpp/gtest )" +BDEPEND=" + doc? ( app-doc/doxygen ) + pulseaudio? ( rust? ( ${RUST_DEPEND} ) )" + +PATCHES=( + "${FILESDIR}"/${P}-automagic.patch +) + +src_unpack() { + use pulseaudio && use rust && cargo_src_unpack || default +} + +src_prepare() { + if use pulseaudio && use rust; then + mv ../${PN}-pulse-rs-${PULSERS_COMMIT} src/${PN}-pulse-rs || die + fi + + cmake_src_prepare + + use !debug || sed -i 's|/release/|/debug/|' CMakeLists.txt || die +} + +src_configure() { + local mycmakeargs=( + -DBUILD_RUST_LIBS=$(usex rust) + -DBUILD_TESTS=$(usex test) + -DCHECK_ALSA=$(usex alsa) + -DCHECK_JACK=$(usex jack) + -DCHECK_PULSE=$(usex pulseaudio) + -DCHECK_SNDIO=$(usex sndio) + -DLAZY_LOAD_LIBS=no + -DUSE_SANITIZERS=no + $(cmake_use_find_package doc Doxygen) + ) + + use pulseaudio && use rust && + cargo_src_configure --manifest-path src/${PN}-pulse-rs/Cargo.toml + + cmake_src_configure +} + +src_compile() { + use pulseaudio && use rust && cargo_src_compile + + cmake_src_compile +} + +src_test() { + use pulseaudio && use rust && cargo_src_test + + # these tests need access to audio devices and no sandbox + cmake_src_test -E '(audio|callback_ret|device_changed_callback|devices|duplex|latency|record|sanity|tone)' +} + +src_install() { + cmake_src_install + + use doc && dodoc -r "${BUILD_DIR}"/docs/html + + use !test || rm "${ED}"/usr/bin/test_* || die +} |