Skip to content

Commit f64c75a

Browse files
Added support for custom OpenSSL selection
1 parent 3f1d8ec commit f64c75a

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

CMakeLists.txt

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -764,14 +764,36 @@ endif()
764764
if(QUIC_TLS_LIB STREQUAL "quictls" OR QUIC_TLS_LIB STREQUAL "openssl")
765765
add_library(OpenSSL INTERFACE)
766766

767-
include(FetchContent)
767+
option(QUIC_USE_EXTERNAL_OPENSSL "Use external OpenSSL instead of building from submodules" OFF)
768+
set(QUIC_OPENSSL_INCLUDE_DIR "" CACHE PATH "Path to OpenSSL include directory")
769+
set(QUIC_OPENSSL_LIB_DIR "" CACHE PATH "Path to OpenSSL library directory")
770+
771+
if(QUIC_USE_EXTERNAL_OPENSSL OR QUIC_OPENSSL_INCLUDE_DIR OR QUIC_OPENSSL_LIB_DIR)
772+
add_library(OpenSSLQuic INTERFACE)
773+
if(QUIC_OPENSSL_INCLUDE_DIR AND QUIC_OPENSSL_LIB_DIR)
774+
target_include_directories(OpenSSLQuic INTERFACE ${QUIC_OPENSSL_INCLUDE_DIR})
775+
find_library(LIB_CRYPTO NAMES crypto libcrypto PATHS ${QUIC_OPENSSL_LIB_DIR} NO_DEFAULT_PATH REQUIRED)
776+
find_library(LIB_SSL NAMES ssl libssl PATHS ${QUIC_OPENSSL_LIB_DIR} NO_DEFAULT_PATH REQUIRED)
777+
target_link_libraries(OpenSSLQuic INTERFACE ${LIB_SSL} ${LIB_CRYPTO})
778+
else()
779+
if(QUIC_TLS_LIB STREQUAL "openssl")
780+
find_package(OpenSSL 3.5.0 REQUIRED)
781+
else()
782+
find_package(OpenSSL REQUIRED)
783+
endif()
784+
target_link_libraries(OpenSSLQuic INTERFACE OpenSSL::SSL OpenSSL::Crypto)
785+
endif()
786+
add_library(OpenSSLQuic::OpenSSLQuic ALIAS OpenSSLQuic)
787+
else()
788+
include(FetchContent)
768789

769-
FetchContent_Declare(
770-
OpenSSLQuic
771-
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/submodules
772-
CMAKE_ARGS "-DQUIC_USE_SYSTEM_LIBCRYPTO=${QUIC_USE_SYSTEM_LIBCRYPTO}"
773-
)
774-
FetchContent_MakeAvailable(OpenSSLQuic)
790+
FetchContent_Declare(
791+
OpenSSLQuic
792+
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/submodules
793+
CMAKE_ARGS "-DQUIC_USE_SYSTEM_LIBCRYPTO=${QUIC_USE_SYSTEM_LIBCRYPTO}"
794+
)
795+
FetchContent_MakeAvailable(OpenSSLQuic)
796+
endif()
775797

776798
target_link_libraries(OpenSSL
777799
INTERFACE

0 commit comments

Comments
 (0)