1
- cmake_minimum_required (VERSION 3.5 )
1
+ cmake_minimum_required (VERSION 3.10 )
2
2
3
3
project (sframe
4
4
VERSION 0.1
@@ -9,6 +9,11 @@ option(TESTING "Build tests" OFF)
9
9
option (CLANG_TIDY "Perform linting with clang-tidy" OFF )
10
10
option (SANITIZERS "Enable sanitizers" OFF )
11
11
12
+ # Use -DCRYPTO=(OPENSSL_1_1 | OPENSSL_3) to configure crypto
13
+ if (NOT DEFINED CRYPTO)
14
+ set (CRYPTO "OPENSSL_3" )
15
+ endif ()
16
+
12
17
###
13
18
### Global Config
14
19
###
@@ -49,7 +54,20 @@ endif()
49
54
###
50
55
51
56
# External libraries
52
- find_package (OpenSSL 1.1 REQUIRED)
57
+ if (${CRYPTO} STREQUAL "OPENSSL_1_1" )
58
+ message (STATUS "Configuring with OpenSSL 1.1" )
59
+ find_package (OpenSSL 1.1 EXACT REQUIRED)
60
+ add_compile_definitions (OPENSSL_1_1)
61
+ set (CRYPTO_LIB OpenSSL::Crypto)
62
+ elseif (${CRYPTO} STREQUAL "OPENSSL_3" )
63
+ message (STATUS "Configuring with OpenSSL 3" )
64
+ find_package (OpenSSL 3 EXACT REQUIRED)
65
+ add_compile_definitions (OPENSSL_3)
66
+ set (CRYPTO_LIB OpenSSL::Crypto)
67
+ else ()
68
+ message (FATAL_ERROR "Please select a crypto back-end (OPENSSL_1_1 or OPENSSL_3) [${CRYPTO} ]" )
69
+ endif ()
70
+
53
71
54
72
###
55
73
### Library Config
@@ -61,7 +79,7 @@ file(GLOB_RECURSE LIB_HEADERS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/inc
61
79
file (GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR} /src/*.cpp" )
62
80
63
81
add_library (${LIB_NAME} ${LIB_HEADERS} ${LIB_SOURCES} )
64
- target_link_libraries (${LIB_NAME} PRIVATE OpenSSL::Crypto )
82
+ target_link_libraries (${LIB_NAME} PRIVATE ${CRYPTO_LIB} )
65
83
target_include_directories (${LIB_NAME}
66
84
PUBLIC
67
85
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /include >
0 commit comments