Added OpenSSL as an extension, but just implemented MD5. (0.38.12)
This commit is contained in:
parent
15082bdc3e
commit
53698478d9
15 changed files with 182 additions and 5 deletions
|
|
@ -22,6 +22,7 @@ include(${CMAKE_SOURCE_DIR}/cmake/Extensions/PCRE2.cmake)
|
|||
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/CURL.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/NOTCURSES.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/REPL.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/OPENSSL.cmake)
|
||||
|
||||
# Summary of extension toggles
|
||||
message(STATUS "---- Fun extension summary ----")
|
||||
|
|
@ -36,4 +37,5 @@ _fun_print_feature("PCRE2 (FUN_WITH_PCRE2)" FUN_WITH_PCRE2)
|
|||
_fun_print_feature("libcurl (FUN_WITH_CURL)" FUN_WITH_CURL)
|
||||
_fun_print_feature("Notcurses (FUN_WITH_NOTCURSES)" FUN_WITH_NOTCURSES)
|
||||
_fun_print_feature("REPL (FUN_WITH_REPL)" FUN_WITH_REPL)
|
||||
_fun_print_feature("OpenSSL (FUN_WITH_OPENSSL)" FUN_WITH_OPENSSL)
|
||||
message(STATUS "--------------------------------")
|
||||
|
|
|
|||
41
cmake/Extensions/OPENSSL.cmake
Normal file
41
cmake/Extensions/OPENSSL.cmake
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
## OpenSSL optional integration (MD5, etc.)
|
||||
|
||||
option(FUN_WITH_OPENSSL "Enable OpenSSL-based features (e.g., md5)" OFF)
|
||||
|
||||
set(OPENSSL_INCLUDE_DIRS "")
|
||||
set(OPENSSL_LINK_LIBS "")
|
||||
|
||||
if(FUN_WITH_OPENSSL)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
if(NOT OpenSSL_FOUND AND NOT OPENSSL_FOUND)
|
||||
message(FATAL_ERROR "FUN_WITH_OPENSSL=ON but OpenSSL not found")
|
||||
endif()
|
||||
|
||||
# CMake 3.11+ standard variables
|
||||
if(TARGET OpenSSL::Crypto)
|
||||
set(OPENSSL_LINK_LIBS OpenSSL::Crypto)
|
||||
elseif(DEFINED OPENSSL_CRYPTO_LIBRARY)
|
||||
set(OPENSSL_LINK_LIBS ${OPENSSL_CRYPTO_LIBRARY})
|
||||
endif()
|
||||
|
||||
if(DEFINED OPENSSL_INCLUDE_DIR)
|
||||
list(APPEND OPENSSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
# Propagate to main targets if they exist in this scope
|
||||
if(TARGET fun_core)
|
||||
target_link_libraries(fun_core PRIVATE ${OPENSSL_LINK_LIBS})
|
||||
target_include_directories(fun_core PRIVATE ${OPENSSL_INCLUDE_DIRS})
|
||||
target_compile_definitions(fun_core PRIVATE FUN_WITH_OPENSSL=1)
|
||||
endif()
|
||||
if(TARGET fun)
|
||||
target_link_libraries(fun PRIVATE ${OPENSSL_LINK_LIBS})
|
||||
target_include_directories(fun PRIVATE ${OPENSSL_INCLUDE_DIRS})
|
||||
target_compile_definitions(fun PRIVATE FUN_WITH_OPENSSL=1)
|
||||
endif()
|
||||
if(TARGET fun_test)
|
||||
target_link_libraries(fun_test PRIVATE ${OPENSSL_LINK_LIBS})
|
||||
target_include_directories(fun_test PRIVATE ${OPENSSL_INCLUDE_DIRS})
|
||||
target_compile_definitions(fun_test PRIVATE FUN_WITH_OPENSSL=1)
|
||||
endif()
|
||||
endif()
|
||||
Loading…
Add table
Add a link
Reference in a new issue