diff options
author | kinichiro <kinichiro.inoguchi@gmail.com> | 2021-05-02 15:50:37 +0900 |
---|---|---|
committer | kinichiro <kinichiro.inoguchi@gmail.com> | 2021-05-07 20:31:22 +0900 |
commit | 4c56df46de18da692785ed337910ab852c34e0ce (patch) | |
tree | 0096e13212ac46cf6d7e59c65353c8183ee52000 | |
parent | 9971b0820c72a7be267e562f6002439b06103b94 (diff) | |
download | portable-4c56df46de18da692785ed337910ab852c34e0ce.tar.gz portable-4c56df46de18da692785ed337910ab852c34e0ce.tar.bz2 portable-4c56df46de18da692785ed337910ab852c34e0ce.zip |
Statically link libcrypto/ssl into libtls with cmake
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | apps/nc/CMakeLists.txt | 2 | ||||
-rw-r--r-- | crypto/CMakeLists.txt | 2 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 8 | ||||
-rw-r--r-- | tls/CMakeLists.txt | 16 |
5 files changed, 22 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 4183499..838b7e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -331,7 +331,8 @@ if(SIZEOF_TIME_T STREQUAL "4") | |||
331 | endif() | 331 | endif() |
332 | add_definitions(-DSIZEOF_TIME_T=${SIZEOF_TIME_T}) | 332 | add_definitions(-DSIZEOF_TIME_T=${SIZEOF_TIME_T}) |
333 | 333 | ||
334 | set(OPENSSL_LIBS tls ssl crypto ${PLATFORM_LIBS}) | 334 | set(OPENSSL_LIBS ssl crypto ${PLATFORM_LIBS}) |
335 | set(LIBTLS_LIBS tls ${PLATFORM_LIBS}) | ||
335 | 336 | ||
336 | add_subdirectory(crypto) | 337 | add_subdirectory(crypto) |
337 | add_subdirectory(ssl) | 338 | add_subdirectory(ssl) |
diff --git a/apps/nc/CMakeLists.txt b/apps/nc/CMakeLists.txt index cc34ef3..f21c869 100644 --- a/apps/nc/CMakeLists.txt +++ b/apps/nc/CMakeLists.txt | |||
@@ -44,7 +44,7 @@ endif() | |||
44 | 44 | ||
45 | add_executable(nc ${NC_SRC}) | 45 | add_executable(nc ${NC_SRC}) |
46 | target_include_directories(nc PRIVATE . ./compat ../../include/compat) | 46 | target_include_directories(nc PRIVATE . ./compat ../../include/compat) |
47 | target_link_libraries(nc tls ${OPENSSL_LIBS}) | 47 | target_link_libraries(nc ${LIBTLS_LIBS}) |
48 | 48 | ||
49 | if(ENABLE_NC) | 49 | if(ENABLE_NC) |
50 | if(ENABLE_LIBRESSL_INSTALL) | 50 | if(ENABLE_LIBRESSL_INSTALL) |
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 46db626..b1ded85 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt | |||
@@ -968,6 +968,8 @@ if(EXTRA_EXPORT) | |||
968 | endforeach() | 968 | endforeach() |
969 | endif() | 969 | endif() |
970 | 970 | ||
971 | set(LIBTLS_EXTRA_EXPORT ${EXTRA_EXPORT} PARENT_SCOPE) | ||
972 | |||
971 | add_library(crypto_obj OBJECT ${CRYPTO_SRC}) | 973 | add_library(crypto_obj OBJECT ${CRYPTO_SRC}) |
972 | target_include_directories(crypto_obj | 974 | target_include_directories(crypto_obj |
973 | PRIVATE | 975 | PRIVATE |
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d74cfbc..d0280f7 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt | |||
@@ -144,7 +144,7 @@ add_test(cmstest cmstest) | |||
144 | 144 | ||
145 | # configtest | 145 | # configtest |
146 | add_executable(configtest configtest.c) | 146 | add_executable(configtest configtest.c) |
147 | target_link_libraries(configtest ${OPENSSL_LIBS}) | 147 | target_link_libraries(configtest ${LIBTLS_LIBS}) |
148 | add_test(configtest configtest) | 148 | add_test(configtest configtest) |
149 | 149 | ||
150 | # constraints | 150 | # constraints |
@@ -276,7 +276,7 @@ if(NOT BUILD_SHARED_LIBS) | |||
276 | add_test(key_schedule key_schedule) | 276 | add_test(key_schedule key_schedule) |
277 | 277 | ||
278 | add_executable(keypairtest keypairtest.c) | 278 | add_executable(keypairtest keypairtest.c) |
279 | target_link_libraries(keypairtest ${OPENSSL_LIBS}) | 279 | target_link_libraries(keypairtest ${LIBTLS_LIBS}) |
280 | add_test(keypairtest keypairtest | 280 | add_test(keypairtest keypairtest |
281 | ${CMAKE_CURRENT_SOURCE_DIR}/ca.pem | 281 | ${CMAKE_CURRENT_SOURCE_DIR}/ca.pem |
282 | ${CMAKE_CURRENT_SOURCE_DIR}/server.pem | 282 | ${CMAKE_CURRENT_SOURCE_DIR}/server.pem |
@@ -502,7 +502,7 @@ else() | |||
502 | endif() | 502 | endif() |
503 | 503 | ||
504 | add_executable(tlstest ${TLSTEST_SRC}) | 504 | add_executable(tlstest ${TLSTEST_SRC}) |
505 | target_link_libraries(tlstest ${OPENSSL_LIBS}) | 505 | target_link_libraries(tlstest ${LIBTLS_LIBS}) |
506 | if(NOT MSVC) | 506 | if(NOT MSVC) |
507 | add_test(NAME tlstest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tlstest.sh) | 507 | add_test(NAME tlstest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tlstest.sh) |
508 | else() | 508 | else() |
@@ -541,7 +541,7 @@ endif() | |||
541 | # verifytest | 541 | # verifytest |
542 | if(NOT BUILD_SHARED_LIBS) | 542 | if(NOT BUILD_SHARED_LIBS) |
543 | add_executable(verifytest verifytest.c) | 543 | add_executable(verifytest verifytest.c) |
544 | target_link_libraries(verifytest ${OPENSSL_LIBS}) | 544 | target_link_libraries(verifytest ${LIBTLS_LIBS}) |
545 | add_test(verifytest verifytest) | 545 | add_test(verifytest verifytest) |
546 | endif() | 546 | endif() |
547 | 547 | ||
diff --git a/tls/CMakeLists.txt b/tls/CMakeLists.txt index 286d499..9aa10e1 100644 --- a/tls/CMakeLists.txt +++ b/tls/CMakeLists.txt | |||
@@ -29,6 +29,15 @@ else() | |||
29 | add_definitions(-DTLS_DEFAULT_CA_FILE=\"${CMAKE_INSTALL_PREFIX}/etc/ssl/cert.pem\") | 29 | add_definitions(-DTLS_DEFAULT_CA_FILE=\"${CMAKE_INSTALL_PREFIX}/etc/ssl/cert.pem\") |
30 | endif() | 30 | endif() |
31 | 31 | ||
32 | file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym DESTINATION | ||
33 | ${CMAKE_CURRENT_BINARY_DIR}) | ||
34 | if(LIBTLS_EXTRA_EXPORT) | ||
35 | list(SORT LIBTLS_EXTRA_EXPORT) | ||
36 | foreach(SYM IN LISTS LIBTLS_EXTRA_EXPORT) | ||
37 | file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/tls.sym "${SYM}\n") | ||
38 | endforeach() | ||
39 | endif() | ||
40 | |||
32 | add_library(tls_obj OBJECT ${TLS_SRC}) | 41 | add_library(tls_obj OBJECT ${TLS_SRC}) |
33 | target_include_directories(tls_obj | 42 | target_include_directories(tls_obj |
34 | PRIVATE | 43 | PRIVATE |
@@ -37,7 +46,8 @@ target_include_directories(tls_obj | |||
37 | PUBLIC | 46 | PUBLIC |
38 | ../include) | 47 | ../include) |
39 | 48 | ||
40 | add_library(tls $<TARGET_OBJECTS:tls_obj>) | 49 | add_library(tls $<TARGET_OBJECTS:tls_obj> $<TARGET_OBJECTS:ssl_obj> |
50 | $<TARGET_OBJECTS:crypto_obj>) | ||
41 | target_include_directories(tls | 51 | target_include_directories(tls |
42 | PRIVATE | 52 | PRIVATE |
43 | . | 53 | . |
@@ -45,8 +55,8 @@ target_include_directories(tls | |||
45 | PUBLIC | 55 | PUBLIC |
46 | ../include) | 56 | ../include) |
47 | 57 | ||
48 | export_symbol(tls ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym) | 58 | export_symbol(tls ${CMAKE_CURRENT_BINARY_DIR}/tls.sym) |
49 | target_link_libraries(tls ssl crypto ${PLATFORM_LIBS}) | 59 | target_link_libraries(tls ${PLATFORM_LIBS}) |
50 | if (WIN32) | 60 | if (WIN32) |
51 | set(TLS_POSTFIX -${TLS_MAJOR_VERSION}) | 61 | set(TLS_POSTFIX -${TLS_MAJOR_VERSION}) |
52 | endif() | 62 | endif() |