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")
+}

Reply via email to