summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-libs/chromaprint/chromaprint-1.6.0-r1.ebuild53
-rw-r--r--media-libs/chromaprint/files/chromaprint-1.6.0-unbundle_gtest.patch41
-rw-r--r--media-libs/chromaprint/metadata.xml3
3 files changed, 95 insertions, 2 deletions
diff --git a/media-libs/chromaprint/chromaprint-1.6.0-r1.ebuild b/media-libs/chromaprint/chromaprint-1.6.0-r1.ebuild
new file mode 100644
index 000000000000..20a3df6f81d6
--- /dev/null
+++ b/media-libs/chromaprint/chromaprint-1.6.0-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+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"
+
+LICENSE="LGPL-2.1"
+SLOT="0/1"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~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-5:=[${MULTILIB_USEDEP}] )
+ !tools? ( sci-libs/fftw:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
+"
+
+DOCS=( NEWS.txt README.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6.0-unbundle_gtest.patch
+)
+
+src_prepare() {
+ # remove gtest (unbundled) and fftkiss (unused)
+ rm -r src/3rdparty || die
+ cmake_src_prepare
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_TESTS=$(usex test)
+ -DBUILD_TOOLS=$(multilib_native_usex tools)
+ -DFFT_LIB=$(usex tools 'avtx' 'fftw3')
+ # 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=$(multilib_native_usex !tools)
+ )
+
+ cmake_src_configure
+}
diff --git a/media-libs/chromaprint/files/chromaprint-1.6.0-unbundle_gtest.patch b/media-libs/chromaprint/files/chromaprint-1.6.0-unbundle_gtest.patch
new file mode 100644
index 000000000000..4c0c7b67a8c7
--- /dev/null
+++ b/media-libs/chromaprint/files/chromaprint-1.6.0-unbundle_gtest.patch
@@ -0,0 +1,41 @@
+unbundle gtest
+set gnu++17 for >=gtest-1.17
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,7 +27,7 @@ find_package(Threads)
+
+ option(BUILD_SHARED_LIBS "Build shared libraries" ON)
+
+-set(CMAKE_CXX_STANDARD 14)
++set(CMAKE_CXX_STANDARD 17)
+
+ if(BUILD_SHARED_LIBS)
+ set(CMAKE_C_VISIBILITY_PRESET hidden)
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -1,13 +1,3 @@
+-include(GoogleTest)
+-
+-set(BUILD_GMOCK OFF CACHE BOOL "" FORCE)
+-set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
+-mark_as_advanced(BUILD_GMOCK INSTALL_GTEST GTEST_HAS_ABSL)
+-
+-set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+-
+-add_subdirectory("${PROJECT_SOURCE_DIR}/src/3rdparty/googletest" "test/3rdparty/googletest")
+-
+ add_executable(all_tests
+ $<TARGET_OBJECTS:chromaprint_objs>
+ main.cpp
+@@ -35,8 +25,10 @@ add_executable(all_tests
+ ../src/utils/rolling_integral_image_test.cpp
+ )
+
++find_package(GTest REQUIRED)
++include(GoogleTest)
+ target_include_directories(all_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
+-target_link_libraries(all_tests PRIVATE chromaprint gtest gtest_main)
++target_link_libraries(all_tests PRIVATE chromaprint GTest::gtest_main)
+
+ if(BUILD_TOOLS)
+ target_sources(all_tests PRIVATE ../src/audio/ffmpeg_audio_reader_test.cpp)
diff --git a/media-libs/chromaprint/metadata.xml b/media-libs/chromaprint/metadata.xml
index 3f7ed8ab0115..a32f60f1d72f 100644
--- a/media-libs/chromaprint/metadata.xml
+++ b/media-libs/chromaprint/metadata.xml
@@ -9,7 +9,6 @@
<flag name="tools">Build and install fpcalc and fpcollect tools</flag>
</use>
<upstream>
- <remote-id type="bitbucket">acoustid/chromaprint</remote-id>
- <remote-id type="github">google/googletest</remote-id>
+ <remote-id type="github">acoustid/chromaprint</remote-id>
</upstream>
</pkgmetadata>