]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: support ngtcp2 boringssl backend
authorDon <don.j.olmstead@gmail.com>
Tue, 28 Jun 2022 22:33:25 +0000 (15:33 -0700)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 5 Jul 2022 08:09:40 +0000 (10:09 +0200)
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

CMake/FindNGTCP2.cmake
CMakeLists.txt

index 37b060ea0dae5eb71521d24e68711026104fbb2b..61e54c2d67ca2e32d8aaeba179c67ff3cf676ea3 100644 (file)
@@ -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()
index 5350e879850b1c8107e6c14aa4e43b8175edb29b..5ecb944c7b15c590a9ef42affd7dcded30044752 100644 (file)
@@ -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.