Statically link libcrypto/ssl into libtls with cmake

This commit is contained in:
kinichiro
2021-05-02 15:50:37 +09:00
parent 9971b0820c
commit 4c56df46de
5 changed files with 22 additions and 9 deletions

View File

@@ -29,6 +29,15 @@ else()
add_definitions(-DTLS_DEFAULT_CA_FILE=\"${CMAKE_INSTALL_PREFIX}/etc/ssl/cert.pem\")
endif()
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym DESTINATION
${CMAKE_CURRENT_BINARY_DIR})
if(LIBTLS_EXTRA_EXPORT)
list(SORT LIBTLS_EXTRA_EXPORT)
foreach(SYM IN LISTS LIBTLS_EXTRA_EXPORT)
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/tls.sym "${SYM}\n")
endforeach()
endif()
add_library(tls_obj OBJECT ${TLS_SRC})
target_include_directories(tls_obj
PRIVATE
@@ -37,7 +46,8 @@ target_include_directories(tls_obj
PUBLIC
../include)
add_library(tls $<TARGET_OBJECTS:tls_obj>)
add_library(tls $<TARGET_OBJECTS:tls_obj> $<TARGET_OBJECTS:ssl_obj>
$<TARGET_OBJECTS:crypto_obj>)
target_include_directories(tls
PRIVATE
.
@@ -45,8 +55,8 @@ target_include_directories(tls
PUBLIC
../include)
export_symbol(tls ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym)
target_link_libraries(tls ssl crypto ${PLATFORM_LIBS})
export_symbol(tls ${CMAKE_CURRENT_BINARY_DIR}/tls.sym)
target_link_libraries(tls ${PLATFORM_LIBS})
if (WIN32)
set(TLS_POSTFIX -${TLS_MAJOR_VERSION})
endif()