From 80fd751083ad54ccd7277245d767c852703366db Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 11 Jan 2024 14:12:45 +0100 Subject: [PATCH] Use Requires.private for generated pkgconfig file Signed-off-by: Brecht Van Lommel --- cmake/OpenEXR.pc.in | 3 ++- cmake/OpenEXRSetup.cmake | 29 +++++++++++------------------ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/cmake/OpenEXR.pc.in b/cmake/OpenEXR.pc.in index bce35c2b1f..68d71c3c84 100644 --- a/cmake/OpenEXR.pc.in +++ b/cmake/OpenEXR.pc.in @@ -14,7 +14,8 @@ Name: OpenEXR Description: OpenEXR image library Version: @OPENEXR_VERSION@ -Libs: @exr_pthread_libs@ -L${libdir} -lOpenEXR${libsuffix} -lOpenEXRUtil${libsuffix} -lOpenEXRCore${libsuffix} -lIex${libsuffix} -lIlmThread${libsuffix} @EXR_DEFLATE_LDFLAGS@ +Libs: @exr_pthread_libs@ -L${libdir} -lOpenEXR${libsuffix} -lOpenEXRUtil${libsuffix} -lOpenEXRCore${libsuffix} -lIex${libsuffix} -lIlmThread${libsuffix} Cflags: -I${includedir} -I${OpenEXR_includedir} @exr_pthread_cflags@ Requires: Imath +Requires.private: @EXR_DEFLATE_PKGCONFIG_REQUIRES@ diff --git a/cmake/OpenEXRSetup.cmake b/cmake/OpenEXRSetup.cmake index f92d0af52a..a70f86d2f4 100644 --- a/cmake/OpenEXRSetup.cmake +++ b/cmake/OpenEXRSetup.cmake @@ -161,21 +161,14 @@ if(NOT OPENEXR_FORCE_INTERNAL_DEFLATE) #TODO: ^^ Release should not clone from main, this is a place holder set(CMAKE_IGNORE_PATH "${CMAKE_CURRENT_BINARY_DIR}/_deps/deflate-src/config;${CMAKE_CURRENT_BINARY_DIR}/_deps/deflate-build/config") # First try cmake config - find_package(libdeflate CONFIG) + find_package(libdeflate CONFIG QUIET) if(libdeflate_FOUND) if(TARGET libdeflate::libdeflate_shared) set(EXR_DEFLATE_LIB libdeflate::libdeflate_shared) else() set(EXR_DEFLATE_LIB libdeflate::libdeflate_static) endif() - set(EXR_DEFLATE_SOURCES) - set(EXR_DEFLATE_INCLUDE_DIR) - set(EXR_DEFLATE_LDFLAGS) - # Set EXR_DEFATE_LDFLAGS for OpenEXR.pc.in for static build - if(NOT BUILD_SHARED_LIBS) - get_target_property(deflate_LIBRARIES ${EXR_DEFLATE_LIB} LOCATION) - set(EXR_DEFLATE_LDFLAGS "-l${deflate_LIBRARIES}") - endif() + set(EXR_DEFLATE_VERSION ${libdeflate_VERSION}) message(STATUS "Using libdeflate from ${libdeflate_DIR}") else() # If not found, try pkgconfig @@ -185,13 +178,7 @@ if(NOT OPENEXR_FORCE_INTERNAL_DEFLATE) pkg_check_modules(deflate IMPORTED_TARGET GLOBAL libdeflate) if(deflate_FOUND) set(EXR_DEFLATE_LIB PkgConfig::deflate) - set(EXR_DEFLATE_SOURCES) - set(EXR_DEFLATE_INCLUDE_DIR) - set(EXR_DEFLATE_LDFLAGS) - # Set EXR_DEFATE_LDFLAGS for OpenEXR.pc.in for static build - if(NOT BUILD_SHARED_LIBS) - set(EXR_DEFLATE_LDFLAGS "-l${deflate_LIBRARIES}") - endif() + set(EXR_DEFLATE_VERSION ${deflate_VERSION}) message(STATUS "Using libdeflate from ${deflate_LINK_LIBRARIES}") endif() endif() @@ -199,8 +186,14 @@ if(NOT OPENEXR_FORCE_INTERNAL_DEFLATE) set(CMAKE_IGNORE_PATH) endif() -if(NOT EXR_DEFLATE_LIB) - # Using internal deflate. +if(EXR_DEFLATE_LIB) + # Using external library + set(EXR_DEFLATE_SOURCES) + set(EXR_DEFLATE_INCLUDE_DIR) + # For OpenEXR.pc.in for static build + set(EXR_DEFLATE_PKGCONFIG_REQUIRES "libdeflate >= ${EXR_DEFLATE_VERSION}") +else() + # Using internal deflate if(OPENEXR_FORCE_INTERNAL_DEFLATE) message(STATUS "libdeflate forced internal, installing from ${OPENEXR_DEFLATE_REPO} (${OPENEXR_DEFLATE_TAG})") else()