curl: Set build options the way we need for CMake

Set options added by the update to curl 8.12.1.

In particular, now that upstream curl's CMake code depends on
OpenSSL via imported targets from FindOpenSSL, we can let it
handle the transitive dependency on posix threads.
This commit is contained in:
Brad King 2025-02-13 10:33:59 -05:00
parent ba77812035
commit 80ec307900
5 changed files with 13 additions and 8 deletions

View File

@ -159,6 +159,7 @@ else()
set(CURL_CA_BUNDLE "" CACHE FILEPATH "Path to SSL CA Certificate Bundle")
set(CURL_CA_PATH "" CACHE PATH "Path to SSL CA Certificate Directory")
mark_as_advanced(CURL_CA_BUNDLE CURL_CA_PATH)
find_package(OpenSSL)
endif()
if(NOT CMAKE_USE_SYSTEM_NGHTTP2)
# Tell curl's FindNGHTTP2 module to use our library.

View File

@ -8,7 +8,7 @@ CMAKE_EXE_LINKER_FLAGS:STRING=-static-libstdc++ -static-libgcc
# Enable ssl support in curl
CMAKE_USE_OPENSSL:BOOL=ON
OPENSSL_CRYPTO_LIBRARY:STRING=/opt/openssl/lib/libcrypto.a;-pthread
OPENSSL_CRYPTO_LIBRARY:STRING=/opt/openssl/lib/libcrypto.a
OPENSSL_INCLUDE_DIR:PATH=/opt/openssl/include
OPENSSL_SSL_LIBRARY:FILEPATH=/opt/openssl/lib/libssl.a

View File

@ -8,7 +8,7 @@ CMAKE_EXE_LINKER_FLAGS:STRING=-static-libstdc++ -static-libgcc
# Enable ssl support in curl
CMAKE_USE_OPENSSL:BOOL=ON
OPENSSL_CRYPTO_LIBRARY:STRING=/opt/openssl/lib/libcrypto.a;-pthread
OPENSSL_CRYPTO_LIBRARY:STRING=/opt/openssl/lib/libcrypto.a
OPENSSL_INCLUDE_DIR:PATH=/opt/openssl/include
OPENSSL_SSL_LIBRARY:FILEPATH=/opt/openssl/lib/libssl.a

View File

@ -1,4 +1,5 @@
# Set curl options as needed for CMake build
set(_CURL_QUICK_DETECT ON)
set(BUILD_CURL_EXE OFF CACHE INTERNAL "No curl exe")
set(BUILD_DASHBOARD_REPORTS OFF CACHE INTERNAL "No curl dashboard reports")
set(BUILD_RELEASE_DEBUG_DIRS OFF CACHE INTERNAL "No curl release/debug dirs")
@ -1178,7 +1179,11 @@ macro(curl_openssl_check_symbol_exists _symbol _files _variable)
list(APPEND CMAKE_REQUIRED_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
list(APPEND CMAKE_REQUIRED_DEFINITIONS "-DOPENSSL_SUPPRESS_DEPRECATED") # for SSL_CTX_set_srp_username deprecated since 3.0.0
if(HAVE_LIBZ)
list(APPEND CMAKE_REQUIRED_LIBRARIES ZLIB::ZLIB)
if(CMAKE_USE_SYSTEM_ZLIB)
list(APPEND CMAKE_REQUIRED_LIBRARIES ZLIB::ZLIB)
else()
list(APPEND CMAKE_REQUIRED_LIBRARIES cmzlib)
endif()
endif()
if(WIN32)
list(APPEND CMAKE_REQUIRED_LIBRARIES "ws2_32")

View File

@ -887,8 +887,8 @@ IF(ENABLE_OPENSSL AND NOT CMAKE_SYSTEM_NAME MATCHES "Darwin")
IF(OPENSSL_FOUND)
SET(HAVE_LIBCRYPTO 1)
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
LIST(APPEND ADDITIONAL_LIBS ${OPENSSL_CRYPTO_LIBRARY})
SET(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
list(APPEND ADDITIONAL_LIBS OpenSSL::Crypto)
set(CMAKE_REQUIRED_LIBRARIES OpenSSL::Crypto)
SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
LA_CHECK_INCLUDE_FILE("openssl/evp.h" HAVE_OPENSSL_EVP_H)
CHECK_FUNCTION_EXISTS(PKCS5_PBKDF2_HMAC_SHA1 HAVE_PKCS5_PBKDF2_HMAC_SHA1)
@ -1018,9 +1018,8 @@ main(int argc, char **argv)
# was found on this platform.
IF (ARCHIVE_CRYPTO_${ALGORITHM}_${IMPLEMENTATION})
IF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND)
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
LIST(APPEND ADDITIONAL_LIBS ${OPENSSL_LIBRARIES})
LIST(REMOVE_DUPLICATES ADDITIONAL_LIBS)
LIST(APPEND ADDITIONAL_LIBS OpenSSL::Crypto)
LIST(REMOVE_DUPLICATES ADDITIONAL_LIBS)
ENDIF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND)
ENDIF (ARCHIVE_CRYPTO_${ALGORITHM}_${IMPLEMENTATION})
ENDIF(NOT ARCHIVE_CRYPTO_${ALGORITHM})