From 89468f89246e958bf62c18534ca90ad9ac04f1e8 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Thu, 28 Dec 2023 20:48:31 +0530 Subject: [PATCH] pkgconf: Add private libraries in Requires.private for static linking (#1905) --- CMakeLists.txt | 7 +++++++ libavif.pc.cmake | 1 + 2 files changed, 8 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 586806a4ff..9aaa78c9d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,6 +43,8 @@ option(AVIF_ENABLE_EXPERIMENTAL_GAIN_MAP ) option(AVIF_ENABLE_EXPERIMENTAL_AVIR "Enable experimental reduced header" OFF) +set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "") + function(set_local_or_system_option VAR DEFAULT TEXT) # Deal with the older way of setting options. if(DEFINED AVIF_LOCAL_${VAR}) @@ -226,6 +228,7 @@ set_local_or_system_option("LIBSHARPYUV" "OFF" "Use libsharpyuv.") check_avif_option(AVIF_LIBSHARPYUV TARGET sharpyuv::sharpyuv PKG_NAME libsharpyuv) if(AVIF_LIBSHARPYUV_ENABLED) message(STATUS "libavif: libsharpyuv found; sharp rgb to yuv conversion enabled.") + set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE} libsharpyuv") target_compile_definitions(avif_obj PRIVATE -DAVIF_LIBSHARPYUV_ENABLED=1) avif_target_link_library(sharpyuv::sharpyuv) endif(AVIF_LIBSHARPYUV_ENABLED) @@ -427,6 +430,7 @@ if(AVIF_CODEC_DAV1D_ENABLED) avif_target_link_library(dav1d::dav1d) message(STATUS "libavif: Codec enabled: dav1d (decode)") + set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE} dav1d") endif() check_avif_option(AVIF_CODEC_LIBGAV1 TARGET libgav1::libgav1 PKG_NAME libgav1) @@ -453,6 +457,7 @@ if(AVIF_CODEC_RAV1E_ENABLED) avif_target_link_library(rav1e::rav1e) message(STATUS "libavif: Codec enabled: rav1e (encode)") + set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE} rav1e") endif() check_avif_option(AVIF_CODEC_SVT TARGET SvtAv1Enc PKG_NAME svt) @@ -462,6 +467,7 @@ if(AVIF_CODEC_SVT_ENABLED) avif_target_link_library(SvtAv1Enc) message(STATUS "libavif: Codec enabled: svt (encode)") + set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE} SvtAv1Enc") endif() check_avif_option(AVIF_CODEC_AOM TARGET aom PKG_NAME aom) @@ -487,6 +493,7 @@ if(AVIF_CODEC_AOM_ENABLED) avif_target_link_library(aom) message(STATUS "libavif: Codec enabled: aom (${AVIF_CODEC_AOM_ENCODE_DECODE_CONFIG})") + set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE} aom") endif() check_avif_option(AVIF_CODEC_AVM TARGET aom PKG_NAME avm) diff --git a/libavif.pc.cmake b/libavif.pc.cmake index ac58c240cc..bab05f89fc 100644 --- a/libavif.pc.cmake +++ b/libavif.pc.cmake @@ -9,3 +9,4 @@ Version: @PROJECT_VERSION@ Libs: -L${libdir} -lavif Cflags: -I${includedir}@AVIF_PKG_CONFIG_EXTRA_CFLAGS@ Cflags.private: -UAVIF_DLL +Requires.private:@AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE@