summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2025-09-20 18:37:48 +0200
committerGitHub <noreply@github.com>2025-09-20 18:37:48 +0200
commit0912a303cc4dda37db7c5546ece8fdacc6223758 (patch)
treeeffae8ec9374567d7cee4b2ce77cc9efe7c5936e
parente7453e398b110891778d8da19209792c69ca7169 (diff)
parentd42966d0078245b2d598407739fd538d3d1f6833 (diff)
Merge pull request #1591 from bgilbert/pkg-config
pkgconfig: drop unused libraries from `Libs.private`
-rw-r--r--CMakeLists.txt14
-rw-r--r--src/lib/openjp2/libopenjp2.pc.cmake.in2
-rw-r--r--src/lib/openjpip/libopenjpip.pc.cmake.in2
3 files changed, 16 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b04561f4..b3170ebd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -328,6 +328,19 @@ set_variable_from_rel_or_absolute_path("docdir" "\\\${prefix}" "${CMAKE_INSTALL_
set_variable_from_rel_or_absolute_path("libdir" "\\\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
set_variable_from_rel_or_absolute_path("includedir" "\\\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR}")
+function(get_pkgconfig_deps NAME OUT)
+ get_target_property(link_libs ${NAME} LINK_LIBRARIES)
+ if(NOT link_libs STREQUAL "link_libs-NOTFOUND")
+ foreach(lib ${link_libs})
+ # omit -lopenjp2 from Libs.private because libopenjp2 is in Requires
+ if(NOT ${lib} STREQUAL ${OPENJPEG_LIBRARY_NAME})
+ string(APPEND deps "-l${lib} ")
+ endif()
+ endforeach()
+ endif()
+ set(${OUT} ${deps} PARENT_SCOPE)
+endfunction()
+get_pkgconfig_deps(${OPENJPEG_LIBRARY_NAME} deps)
# install in lib and not share (CMAKE_INSTALL_LIBDIR takes care of it for multi-arch)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjp2/libopenjp2.pc.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/libopenjp2.pc @ONLY)
@@ -335,6 +348,7 @@ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjp2.pc DESTINATION
${CMAKE_INSTALL_LIBDIR}/pkgconfig )
#
if(BUILD_JPIP)
+ get_pkgconfig_deps(openjpip deps)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjpip/libopenjpip.pc.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/libopenjpip.pc @ONLY)
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjpip.pc DESTINATION
diff --git a/src/lib/openjp2/libopenjp2.pc.cmake.in b/src/lib/openjp2/libopenjp2.pc.cmake.in
index 2ade312b..ac33f144 100644
--- a/src/lib/openjp2/libopenjp2.pc.cmake.in
+++ b/src/lib/openjp2/libopenjp2.pc.cmake.in
@@ -10,6 +10,6 @@ Description: JPEG2000 library (Part 1 and 2)
URL: http://www.openjpeg.org/
Version: @OPENJPEG_VERSION@
Libs: -L${libdir} -lopenjp2
-Libs.private: -lm
+Libs.private: @deps@
Cflags: -I${includedir}
Cflags.private: -DOPJ_STATIC
diff --git a/src/lib/openjpip/libopenjpip.pc.cmake.in b/src/lib/openjpip/libopenjpip.pc.cmake.in
index fc97ef04..8be21957 100644
--- a/src/lib/openjpip/libopenjpip.pc.cmake.in
+++ b/src/lib/openjpip/libopenjpip.pc.cmake.in
@@ -11,6 +11,6 @@ URL: http://www.openjpeg.org/
Version: @OPENJPEG_VERSION@
Requires: libopenjp2
Libs: -L${libdir} -lopenjpip
-Libs.private: -lm -lcurl -lfcgi -lpthread
+Libs.private: @deps@
Cflags: -I${includedir}
Cflags.private: -DOPJ_STATIC