[chromaprint] Fix pkgconfig exports (#45133)

This commit is contained in:
Kai Pastor 2025-04-21 08:09:53 +02:00 committed by GitHub
parent 0d5cae1530
commit d0e169ea9c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 91 additions and 2 deletions

View File

@ -0,0 +1,21 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eae99d4..141bfe1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -197,6 +197,16 @@ else()
endif()
if(NOT BUILD_FRAMEWORK)
+ foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES)
+ if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES)
+ continue()
+ elseif(EXISTS "${lib}")
+ string(APPEND PC_LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}")
+ else()
+ string(APPEND PC_LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}")
+ endif()
+ endforeach()
+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libchromaprint.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libchromaprint.pc)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/libchromaprint.pc

View File

@ -0,0 +1,46 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eae99d4..141bfe1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,6 +20,9 @@ include(CheckFunctionExists)
include(CheckSymbolExists)
include(CheckCXXCompilerFlag)
+set(PC_LIBS_PRIVATE "")
+set(PC_REQUIRES_PRIVATE "")
+
find_package(Threads)
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
@@ -111,8 +114,10 @@ set(USE_KISSFFT OFF)
if(NOT FFT_LIB)
if(APPLE AND ACCELERATE_LIBRARIES)
set(FFT_LIB "vdsp")
+ string(APPEND PC_LIBS_PRIVATE " -framework Accelerate")
elseif(FFMPEG_LIBAVCODEC_FFT_FOUND)
set(FFT_LIB "avfft")
+ string(APPEND PC_REQUIRES_PRIVATE " libavcodec")
elseif(FFTW3_LIBRARIES)
set(FFT_LIB "fftw3")
elseif(FFTW3_FFTWF_LIBRARY)
@@ -172,6 +177,7 @@ if(AUDIO_PROCESSOR_LIB STREQUAL "swresample")
set(USE_SWRESAMPLE ON)
set(AUDIO_PROCESSOR_LIBRARIES ${FFMPEG_LIBSWRESAMPLE_LIBRARIES})
set(AUDIO_PROCESSOR_INCLUDE_DIRS ${FFMPEG_LIBSWRESAMPLE_INCLUDE_DIRS})
+ string(APPEND PC_REQUIRES_PRIVATE " libswresample")
else()
message(FATAL_ERROR "Selected ${AUDIO_PROCESSOR_LIB} for audio processing, but the library is not found")
endif()
diff --git a/libchromaprint.pc.cmake b/libchromaprint.pc.cmake
index 3799329..64123dc 100644
--- a/libchromaprint.pc.cmake
+++ b/libchromaprint.pc.cmake
@@ -7,6 +7,8 @@ Name: ${PROJECT_NAME}
Description: Audio fingerprint library
URL: http://acoustid.org/chromaprint
Version: ${PROJECT_VERSION}
+Requires.private: ${PC_REQUIRES_PRIVATE}
Libs: -L${LIB_INSTALL_DIR} -lchromaprint
+Libs.private: ${PC_LIBS_PRIVATE}
Cflags: -I${INCLUDE_INSTALL_DIR}

View File

@ -4,7 +4,11 @@ vcpkg_from_github(
REF "v${VERSION}"
SHA512 ea16e4d2b879c15b1d9b9ec93878da8b893f1834c70942663e1d2d106c2e0a661094fe2dd3bae7a6c2a1f9d5d8fab5e0b0ba493561090cf57b2228606fad1e66
HEAD_REF master
PATCHES
pkgconfig-dependencies.diff
pkgconfig-cxx-linkage.diff
)
file(REMOVE_RECURSE "${SOURCE_PATH}/src/3rdparty")
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
@ -14,5 +18,9 @@ vcpkg_cmake_configure(
vcpkg_cmake_install()
vcpkg_fixup_pkgconfig()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/chromaprint.h" "ifdef CHROMAPRINT_NODLL" "if 1")
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md")

View File

@ -1,12 +1,21 @@
{
"name": "chromaprint",
"version": "1.5.1",
"port-version": 1,
"description": "C library for generating audio fingerprints used by AcoustID",
"homepage": "https://github.com/acoustid/chromaprint",
"license": "LGPL-2.1-or-later",
"supports": "!xbox",
"dependencies": [
"ffmpeg",
{
"name": "ffmpeg",
"default-features": false,
"features": [
"avcodec",
"avformat",
"swresample"
]
},
{
"name": "vcpkg-cmake",
"host": true

View File

@ -1662,7 +1662,7 @@
},
"chromaprint": {
"baseline": "1.5.1",
"port-version": 0
"port-version": 1
},
"chromium-base": {
"baseline": "86.0.4199.1",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "7757884ac6885475efb0036e54085fca9d8f681a",
"version": "1.5.1",
"port-version": 1
},
{
"git-tree": "a33e3947df39a3ac4e7d434f7f3890d0bf80cf39",
"version": "1.5.1",