From 91584b382be8cbd19ab7a035984fae306ca390d8 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 25 Feb 2025 16:27:15 +0100 Subject: [PATCH 1/5] cmake: remove CURL_LIBDIRS dupes --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6795b67967..4136901f6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2073,6 +2073,8 @@ if(HAVE_MANUAL_TOOLS) add_subdirectory(docs) endif() +list(REMOVE_DUPLICATES CURL_LIBDIRS) + add_subdirectory(lib) if(BUILD_CURL_EXE) From 5ce7b2dbdad622772a848e3e22c987c5936bbd4e Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 25 Feb 2025 16:31:48 +0100 Subject: [PATCH 2/5] try setting INTERFACE_LINK_DIRECTORIES for static libcurl to CURL_LIBDIRS Requires CMake 3.13, meaning it should be effective there or above but not supposed to break earlier versions just by adding this property. --- lib/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 76b63f416b..7200b0925d 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -149,7 +149,8 @@ if(BUILD_STATIC_LIBS) set_target_properties(${LIB_STATIC} PROPERTIES PREFIX "" OUTPUT_NAME "${LIBCURL_OUTPUT_NAME}" SUFFIX "${STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" - INTERFACE_COMPILE_DEFINITIONS "CURL_STATICLIB") + INTERFACE_COMPILE_DEFINITIONS "CURL_STATICLIB" + INTERFACE_LINK_DIRECTORIES "${CURL_LIBDIRS}") if(CURL_HIDES_PRIVATE_SYMBOLS) set_property(TARGET ${LIB_STATIC} APPEND PROPERTY COMPILE_FLAGS "${CURL_CFLAG_SYMBOLS_HIDE}") set_property(TARGET ${LIB_STATIC} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS") From ffbf30d95a9907c83278ee97c392e9e8d32faf98 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 25 Feb 2025 16:36:21 +0100 Subject: [PATCH 3/5] FindBrotli: streamline multi-pkg-config case --- CMake/FindBrotli.cmake | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/CMake/FindBrotli.cmake b/CMake/FindBrotli.cmake index b72f1906ff..f7bb21efb2 100644 --- a/CMake/FindBrotli.cmake +++ b/CMake/FindBrotli.cmake @@ -39,24 +39,18 @@ # - `BROTLI_CFLAGS`: Required compiler flags. # - `BROTLI_VERSION`: Version of brotli. -set(BROTLI_PC_REQUIRES "libbrotlidec") +set(BROTLI_PC_REQUIRES "libbrotlidec" "libbrotlicommon") if(CURL_USE_PKGCONFIG AND NOT DEFINED BROTLI_INCLUDE_DIR AND NOT DEFINED BROTLICOMMON_LIBRARY AND NOT DEFINED BROTLIDEC_LIBRARY) find_package(PkgConfig QUIET) - pkg_check_modules(BROTLI "libbrotlicommon") - pkg_check_modules(BROTLIDEC ${BROTLI_PC_REQUIRES}) + pkg_check_modules(BROTLI ${BROTLI_PC_REQUIRES}) endif() -if(BROTLI_FOUND AND BROTLIDEC_FOUND) +if(BROTLI_FOUND) set(Brotli_FOUND TRUE) - list(APPEND BROTLIDEC_LIBRARIES ${BROTLI_LIBRARIES}) # order is significant: brotlidec then brotlicommon - list(REVERSE BROTLIDEC_LIBRARIES) - list(REMOVE_DUPLICATES BROTLIDEC_LIBRARIES) - list(REVERSE BROTLIDEC_LIBRARIES) - set(BROTLI_LIBRARIES ${BROTLIDEC_LIBRARIES}) string(REPLACE ";" " " BROTLI_CFLAGS "${BROTLI_CFLAGS}") message(STATUS "Found Brotli (via pkg-config): ${BROTLI_INCLUDE_DIRS} (found version \"${BROTLI_VERSION}\")") else() From d7e8a018c83eda2330b678c0474358c7f2601bd7 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 25 Feb 2025 17:54:14 +0100 Subject: [PATCH 4/5] am: add `libbrotlicommon` to `Requires.private` --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 6146412e74..0d8e0fd8e7 100644 --- a/configure.ac +++ b/configure.ac @@ -1522,7 +1522,7 @@ if test X"$OPT_BROTLI" != Xno; then AC_MSG_NOTICE([Added $DIR_BROTLI to CURL_LIBRARY_PATH]) fi fi - LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libbrotlidec" + LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libbrotlidec libbrotlicommon" else dnl no brotli, revert back to clean variables LDFLAGS=$CLEANLDFLAGS From 850d7477bb0e70fe1dcadc007668503ff64bafe3 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 25 Feb 2025 23:03:55 +0100 Subject: [PATCH 5/5] re-add comment --- CMake/FindBrotli.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMake/FindBrotli.cmake b/CMake/FindBrotli.cmake index f7bb21efb2..5b280dd3fe 100644 --- a/CMake/FindBrotli.cmake +++ b/CMake/FindBrotli.cmake @@ -39,7 +39,7 @@ # - `BROTLI_CFLAGS`: Required compiler flags. # - `BROTLI_VERSION`: Version of brotli. -set(BROTLI_PC_REQUIRES "libbrotlidec" "libbrotlicommon") +set(BROTLI_PC_REQUIRES "libbrotlidec" "libbrotlicommon") # order is significant: brotlidec then brotlicommon if(CURL_USE_PKGCONFIG AND NOT DEFINED BROTLI_INCLUDE_DIR AND