diff --git a/CMake/FindBrotli.cmake b/CMake/FindBrotli.cmake index b72f1906ff..5b280dd3fe 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") # order is significant: brotlidec then brotlicommon 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() diff --git a/CMakeLists.txt b/CMakeLists.txt index a7962d710a..d53c6733ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2056,6 +2056,8 @@ if(HAVE_MANUAL_TOOLS) add_subdirectory(docs) endif() +list(REMOVE_DUPLICATES CURL_LIBDIRS) + add_subdirectory(lib) if(BUILD_CURL_EXE) 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 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")