mirror of
https://github.com/curl/curl.git
synced 2026-07-28 13:43:05 +03:00
build: cmake multi-pkg-config detection improvements (brotli, ldap, mbedtls)
Apply downstream patch from the vcpkg project: - cmake/FindBrotli: streamline detecting multiple pkg-config modules. Add `libbrotlicommon` to `Requires.private` in `libcurl.pc`. Apply the above idea to the rest of multi-module dependencies: - cmake/FindMbedTLS: streamline detecting multiple pkg-config modules Add `mbedx509`, `mbedcrypto` to `Requires.private` in `libcurl.pc`. - cmake/FindLDAP: streamline detecting multiple pkg-config modules And sync these changes with autotools, and add `libbrotlicommon`, `mbedx509`, `mbedcrypto` to `Requires.private`. Co-authored-by: Kai Pastor Ref: https://github.com/microsoft/vcpkg/pull/43819 Closes #16479
This commit is contained in:
parent
f4831daa9b
commit
3b501976a9
5 changed files with 9 additions and 26 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
# - `LDAP_CFLAGS`: Required compiler flags.
|
||||
# - `LDAP_VERSION`: Version of ldap.
|
||||
|
||||
set(LDAP_PC_REQUIRES "ldap")
|
||||
set(LDAP_PC_REQUIRES "ldap" "lber")
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED LDAP_INCLUDE_DIR AND
|
||||
|
|
@ -47,14 +47,9 @@ if(CURL_USE_PKGCONFIG AND
|
|||
NOT DEFINED LDAP_LBER_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(LDAP ${LDAP_PC_REQUIRES})
|
||||
pkg_check_modules(LDAP_LBER "lber")
|
||||
endif()
|
||||
|
||||
if(LDAP_FOUND AND LDAP_LBER_FOUND)
|
||||
list(APPEND LDAP_LIBRARIES ${LDAP_LBER_LIBRARIES})
|
||||
list(REVERSE LDAP_LIBRARIES)
|
||||
list(REMOVE_DUPLICATES LDAP_LIBRARIES)
|
||||
list(REVERSE LDAP_LIBRARIES)
|
||||
if(LDAP_FOUND)
|
||||
string(REPLACE ";" " " LDAP_CFLAGS "${LDAP_CFLAGS}")
|
||||
message(STATUS "Found LDAP (via pkg-config): ${LDAP_INCLUDE_DIRS} (found version \"${LDAP_VERSION}\")")
|
||||
else()
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ if(DEFINED MBEDTLS_INCLUDE_DIRS AND NOT DEFINED MBEDTLS_INCLUDE_DIR)
|
|||
unset(MBEDTLS_INCLUDE_DIRS)
|
||||
endif()
|
||||
|
||||
set(MBEDTLS_PC_REQUIRES "mbedtls")
|
||||
set(MBEDTLS_PC_REQUIRES "mbedtls" "mbedx509" "mbedcrypto")
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED MBEDTLS_INCLUDE_DIR AND
|
||||
|
|
@ -55,16 +55,10 @@ if(CURL_USE_PKGCONFIG AND
|
|||
NOT DEFINED MBEDCRYPTO_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(MBEDTLS ${MBEDTLS_PC_REQUIRES})
|
||||
pkg_check_modules(MBEDX509 "mbedx509")
|
||||
pkg_check_modules(MBEDCRYPTO "mbedcrypto")
|
||||
endif()
|
||||
|
||||
if(MBEDTLS_FOUND AND MBEDX509_FOUND AND MBEDCRYPTO_FOUND)
|
||||
if(MBEDTLS_FOUND)
|
||||
set(MbedTLS_FOUND TRUE)
|
||||
list(APPEND MBEDTLS_LIBRARIES ${MBEDX509_LIBRARIES} ${MBEDCRYPTO_LIBRARIES})
|
||||
list(REVERSE MBEDTLS_LIBRARIES)
|
||||
list(REMOVE_DUPLICATES MBEDTLS_LIBRARIES)
|
||||
list(REVERSE MBEDTLS_LIBRARIES)
|
||||
string(REPLACE ";" " " MBEDTLS_CFLAGS "${MBEDTLS_CFLAGS}")
|
||||
message(STATUS "Found MbedTLS (via pkg-config): ${MBEDTLS_INCLUDE_DIRS} (found version \"${MBEDTLS_VERSION}\")")
|
||||
else()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ if test "x$OPT_MBEDTLS" != xno; then
|
|||
fi
|
||||
dnl FIXME: Enable when mbedTLS was detected via pkg-config
|
||||
if false; then
|
||||
LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE mbedtls"
|
||||
LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE mbedtls mbedx509 mbedcrypto"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue