aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkinichiro <kinichiro.inoguchi@gmail.com>2021-05-02 15:50:37 +0900
committerkinichiro <kinichiro.inoguchi@gmail.com>2021-05-07 20:31:22 +0900
commit4c56df46de18da692785ed337910ab852c34e0ce (patch)
tree0096e13212ac46cf6d7e59c65353c8183ee52000
parent9971b0820c72a7be267e562f6002439b06103b94 (diff)
downloadportable-4c56df46de18da692785ed337910ab852c34e0ce.tar.gz
portable-4c56df46de18da692785ed337910ab852c34e0ce.tar.bz2
portable-4c56df46de18da692785ed337910ab852c34e0ce.zip
Statically link libcrypto/ssl into libtls with cmake
-rw-r--r--CMakeLists.txt3
-rw-r--r--apps/nc/CMakeLists.txt2
-rw-r--r--crypto/CMakeLists.txt2
-rw-r--r--tests/CMakeLists.txt8
-rw-r--r--tls/CMakeLists.txt16
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")
331endif() 331endif()
332add_definitions(-DSIZEOF_TIME_T=${SIZEOF_TIME_T}) 332add_definitions(-DSIZEOF_TIME_T=${SIZEOF_TIME_T})
333 333
334set(OPENSSL_LIBS tls ssl crypto ${PLATFORM_LIBS}) 334set(OPENSSL_LIBS ssl crypto ${PLATFORM_LIBS})
335set(LIBTLS_LIBS tls ${PLATFORM_LIBS})
335 336
336add_subdirectory(crypto) 337add_subdirectory(crypto)
337add_subdirectory(ssl) 338add_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
45add_executable(nc ${NC_SRC}) 45add_executable(nc ${NC_SRC})
46target_include_directories(nc PRIVATE . ./compat ../../include/compat) 46target_include_directories(nc PRIVATE . ./compat ../../include/compat)
47target_link_libraries(nc tls ${OPENSSL_LIBS}) 47target_link_libraries(nc ${LIBTLS_LIBS})
48 48
49if(ENABLE_NC) 49if(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()
969endif() 969endif()
970 970
971set(LIBTLS_EXTRA_EXPORT ${EXTRA_EXPORT} PARENT_SCOPE)
972
971add_library(crypto_obj OBJECT ${CRYPTO_SRC}) 973add_library(crypto_obj OBJECT ${CRYPTO_SRC})
972target_include_directories(crypto_obj 974target_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
146add_executable(configtest configtest.c) 146add_executable(configtest configtest.c)
147target_link_libraries(configtest ${OPENSSL_LIBS}) 147target_link_libraries(configtest ${LIBTLS_LIBS})
148add_test(configtest configtest) 148add_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()
502endif() 502endif()
503 503
504add_executable(tlstest ${TLSTEST_SRC}) 504add_executable(tlstest ${TLSTEST_SRC})
505target_link_libraries(tlstest ${OPENSSL_LIBS}) 505target_link_libraries(tlstest ${LIBTLS_LIBS})
506if(NOT MSVC) 506if(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)
508else() 508else()
@@ -541,7 +541,7 @@ endif()
541# verifytest 541# verifytest
542if(NOT BUILD_SHARED_LIBS) 542if(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)
546endif() 546endif()
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\")
30endif() 30endif()
31 31
32file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym DESTINATION
33 ${CMAKE_CURRENT_BINARY_DIR})
34if(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()
39endif()
40
32add_library(tls_obj OBJECT ${TLS_SRC}) 41add_library(tls_obj OBJECT ${TLS_SRC})
33target_include_directories(tls_obj 42target_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
40add_library(tls $<TARGET_OBJECTS:tls_obj>) 49add_library(tls $<TARGET_OBJECTS:tls_obj> $<TARGET_OBJECTS:ssl_obj>
50 $<TARGET_OBJECTS:crypto_obj>)
41target_include_directories(tls 51target_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
48export_symbol(tls ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym) 58export_symbol(tls ${CMAKE_CURRENT_BINARY_DIR}/tls.sym)
49target_link_libraries(tls ssl crypto ${PLATFORM_LIBS}) 59target_link_libraries(tls ${PLATFORM_LIBS})
50if (WIN32) 60if (WIN32)
51 set(TLS_POSTFIX -${TLS_MAJOR_VERSION}) 61 set(TLS_POSTFIX -${TLS_MAJOR_VERSION})
52endif() 62endif()