commit: 23fce11f0b9f85285e880516c9f5646dfd7594c7 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Feb 22 06:39:50 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Feb 22 06:39:50 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=23fce11f
media-libs/chromaprint: make ffmpeg support optional Unconditional dependence on ffmpeg leads to awkward circular dependencies between ffmpeg and chromaprint. Let's use fftw unless tools are requested (for which ffmpeg is actually required) to break the cycle in the common case. Bug: https://bugs.gentoo.org/625210 Closes: https://bugs.gentoo.org/833821 Signed-off-by: Sam James <sam <AT> gentoo.org> media-libs/chromaprint/chromaprint-1.5.1-r1.ebuild | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/media-libs/chromaprint/chromaprint-1.5.1-r1.ebuild b/media-libs/chromaprint/chromaprint-1.5.1-r1.ebuild new file mode 100644 index 000000000000..41f811d616ad --- /dev/null +++ b/media-libs/chromaprint/chromaprint-1.5.1-r1.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GTEST_VERSION="1.10.0" +GTEST_DIR_VERSION="1.10.x" +inherit cmake-multilib + +DESCRIPTION="Library implementing a custom algorithm for extracting audio fingerprints" +HOMEPAGE="https://acoustid.org/chromaprint" +SRC_URI="https://github.com/acoustid/${PN}/releases/download/v${PV}/${P}.tar.gz + test? ( https://github.com/google/googletest/archive/v$(ver_cut 1-2 ${GTEST_VERSION}).x.tar.gz -> gtest-${GTEST_VERSION}.tar.gz ) +" + +LICENSE="LGPL-2.1" +SLOT="0/1" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="test tools" +RESTRICT="!test? ( test )" + +# Default to fftw to avoid awkward circular dependency w/ ffmpeg +# See bug #833821 for an example +RDEPEND="tools? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] ) + !tools? ( sci-libs/fftw:=[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )" + +DOCS=( NEWS.txt README.md ) + +multilib_src_configure() { + export GTEST_ROOT="${WORKDIR}/googletest-${GTEST_DIR_VERSION}/googletest/" + + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + + -DFFT_LIB=$(usex tools 'avfft' 'fftw3') + + $(usev tools '-DAUDIO_PROCESSOR_LIB="swresample"') + + # Automagicallyish looks for ffmpeg, but there's no point + # even doing the check unless we're building with tools + # (=> without fftw3, and with ffmpeg). + -DCMAKE_DISABLE_FIND_PACKAGE_FFmpeg=$(usex !tools) + ) + + cmake_src_configure +} + +multilib_src_test() { + cd tests && (./all_tests || die "Tests failed") +}
