summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-02-22 06:39:50 +0000
committerSam James <sam@gentoo.org>2022-02-22 06:39:50 +0000
commit23fce11f0b9f85285e880516c9f5646dfd7594c7 (patch)
treee520386db613591438c4e818ddd08d56dfb6f3c2 /media-libs/chromaprint
parentsys-auth/polkit: patch CVE-2021-4115 (diff)
downloadgentoo-23fce11f0b9f85285e880516c9f5646dfd7594c7.tar.gz
gentoo-23fce11f0b9f85285e880516c9f5646dfd7594c7.tar.bz2
gentoo-23fce11f0b9f85285e880516c9f5646dfd7594c7.zip
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@gentoo.org>
Diffstat (limited to 'media-libs/chromaprint')
-rw-r--r--media-libs/chromaprint/chromaprint-1.5.1-r1.ebuild52
1 files changed, 52 insertions, 0 deletions
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")
+}