From: Don Date: Tue, 28 Jun 2022 22:33:25 +0000 (-0700) Subject: cmake: support ngtcp2 boringssl backend X-Git-Tag: curl-7_85_0~193 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7f8b36b074b953ecf133b64c63caaaaf8017739a;p=thirdparty%2Fcurl.git cmake: support ngtcp2 boringssl backend Update the ngtcp2 find module to detect the boringssl backend. Determine if the underlying OpenSSL implementation is BoringSSL and if so use that as the ngtcp2 backend. Reviewed-by: Jakub Zakrzewski Closes #9065 --- diff --git a/CMake/FindNGTCP2.cmake b/CMake/FindNGTCP2.cmake index 37b060ea0d..61e54c2d67 100644 --- a/CMake/FindNGTCP2.cmake +++ b/CMake/FindNGTCP2.cmake @@ -71,7 +71,7 @@ endif() if(NGTCP2_FIND_COMPONENTS) set(NGTCP2_CRYPTO_BACKEND "") foreach(component IN LISTS NGTCP2_FIND_COMPONENTS) - if(component MATCHES "^(OpenSSL|GnuTLS)") + if(component MATCHES "^(BoringSSL|OpenSSL|GnuTLS)") if(NGTCP2_CRYPTO_BACKEND) message(FATAL_ERROR "NGTCP2: Only one crypto library can be selected") endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 5350e87985..5ecb944c7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -451,6 +451,7 @@ if(CURL_USE_OPENSSL) check_symbol_exists(RAND_status "${CURL_INCLUDES}" HAVE_RAND_STATUS) check_symbol_exists(RAND_screen "${CURL_INCLUDES}" HAVE_RAND_SCREEN) check_symbol_exists(RAND_egd "${CURL_INCLUDES}" HAVE_RAND_EGD) + check_symbol_exists(OPENSSL_IS_BORINGSSL "openssl/base.h" HAVE_BORINGSSL) add_definitions(-DOPENSSL_SUPPRESS_DEPRECATED) endif() @@ -506,7 +507,7 @@ function(CheckQuicSupportInOpenSSL) set(CMAKE_REQUIRED_LIBRARIES "${OPENSSL_LIBRARIES}") check_symbol_exists(SSL_CTX_set_quic_method "openssl/ssl.h" HAVE_SSL_CTX_SET_QUIC_METHOD) if(NOT HAVE_SSL_CTX_SET_QUIC_METHOD) - message(FATAL_ERROR "QUIC support is missing in OpenSSL/boringssl. Try setting -DOPENSSL_ROOT_DIR") + message(FATAL_ERROR "QUIC support is missing in OpenSSL/BoringSSL. Try setting -DOPENSSL_ROOT_DIR") endif() cmake_pop_check_state() endfunction() @@ -514,7 +515,11 @@ endfunction() option(USE_NGTCP2 "Use ngtcp2 and nghttp3 libraries for HTTP/3 support" OFF) if(USE_NGTCP2) if(USE_OPENSSL) - find_package(NGTCP2 REQUIRED OpenSSL) + if(HAVE_BORINGSSL) + find_package(NGTCP2 REQUIRED BoringSSL) + else() + find_package(NGTCP2 REQUIRED OpenSSL) + endif() CheckQuicSupportInOpenSSL() elseif(USE_GNUTLS) # TODO add GnuTLS support as vtls library.