Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow building with dynamic libssl #389

Merged
merged 1 commit into from
Dec 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 15 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,17 @@ if(NOT SSL_INC_PATH AND NOT SSL_LIB_PATH)
find_package(SSL)

if(NOT SSL_FOUND)
message(FATAL_ERROR "ssl moudle not found")
message(FATAL_ERROR "ssl module not found")
endif(NOT SSL_FOUND)

if(NOT SSL_LIBRARIES_STATIC)
message(FATAL_ERROR "ssl/crypto static library not found")
endif(NOT SSL_LIBRARIES_STATIC)

# compat with elder macros
set(SSL_LIB_PATH ${SSL_LIBRARIES_STATIC})
if(SSL_DYNAMIC)
message(NOTICE "-- Building with dynamic libssl")
set(SSL_LIB_PATH ${SSL_LIBRARIES})
else()
message(NOTICE "-- Building with static libssl")
set(SSL_LIB_PATH ${SSL_LIBRARIES_STATIC})
endif()
set(SSL_INC_PATH ${SSL_INCLUDE_DIR})

else()
Expand Down Expand Up @@ -338,11 +340,13 @@ set (


# target
add_library(
xquic-static
STATIC
${XQC_SOURCE}
)
if(NOT SSL_DYNAMIC)
add_library(
xquic-static
STATIC
${XQC_SOURCE}
)
endif()

add_library(
xquic
Expand Down
3 changes: 2 additions & 1 deletion CMakeOptions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
option(ENABLE_DEBUG "Turn on debug output" ON)
option(XQC_BUILD_OPENSSL "Turn on OpenSSL" ON)
option(SSL_TYPE "Using BoringSSL" boringssl)
option(SSL_DYNAMIC "Use dynamic libssl" OFF)
option(XQC_ENABLE_TESTING "Enable Testing" OFF)
option(XQC_BUILD_SAMPLE "Build Sample" OFF)
option(GCOV "Test Coverage" OFF)
option(GCOV "Test Coverage" OFF)
33 changes: 21 additions & 12 deletions cmake/FindSSL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@

# find include dir
find_path(SSL_INCLUDE_DIR NAMES openssl/ssl.h
PATHS ${SSL_DIR}
PATHS ${SSL_DIR}
PATH_SUFFIXES include
NO_DEFAULT_PATH)

# find ssl library
find_library(SSL_LIBRARY NAMES ssl
PATHS ${SSL_DIR}
PATH_SUFFIXES lib64 lib build
PATHS ${SSL_DIR}
PATH_SUFFIXES lib64 lib build build/ssl
NO_DEFAULT_PATH)

# find crypto library
find_library(CRYPTO_LIBRARY NAMES crypto
PATHS ${SSL_DIR}
PATH_SUFFIXES lib64 lib build
PATHS ${SSL_DIR}
PATH_SUFFIXES lib64 lib build build/crypto
NO_DEFAULT_PATH)


Expand All @@ -32,7 +32,7 @@ endif()

# find ssl static library
find_library(SSL_LIBRARY_STATIC NAMES ${SSL_LIBRARY_STATIC_NAME}
PATHS ${SSL_DIR}
PATHS ${SSL_DIR}
PATH_SUFFIXES lib64 lib build/ssl build/ssl/${CMAKE_BUILD_TYPE}
NO_DEFAULT_PATH)

Expand All @@ -43,12 +43,21 @@ find_library(CRYPTO_LIBRARY_STATIC NAMES ${CRYPTO_LIBRARY_STATIC_NAME}
NO_DEFAULT_PATH)

include (FindPackageHandleStandardArgs)
find_package_handle_standard_args(SSL
REQUIRED_VARS
SSL_INCLUDE_DIR
SSL_LIBRARY_STATIC
CRYPTO_LIBRARY_STATIC
)
if(SSL_DYNAMIC)
find_package_handle_standard_args(SSL
REQUIRED_VARS
SSL_INCLUDE_DIR
SSL_LIBRARY
CRYPTO_LIBRARY
)
else()
find_package_handle_standard_args(SSL
REQUIRED_VARS
SSL_INCLUDE_DIR
SSL_LIBRARY_STATIC
CRYPTO_LIBRARY_STATIC
)
endif()

set (SSL_LIBRARIES
${SSL_LIBRARY}
Expand Down
Loading