libressl-portable/tls/CMakeLists.txt
Don 5fb488de9f Use groups in CMake install command for libraries
On Windows shared libraries should be installed into the bin directory. Using grouping within CMake based on the target type fixes this issue.
2018-03-16 13:59:26 -07:00

68 lines
1.5 KiB
CMake

include_directories(
.
../include
../include/compat
)
set(
TLS_SRC
tls.c
tls_bio_cb.c
tls_client.c
tls_config.c
tls_conninfo.c
tls_keypair.c
tls_server.c
tls_ocsp.c
tls_peer.c
tls_util.c
tls_verify.c
)
if(CMAKE_HOST_WIN32)
set(
TLS_SRC
${TLS_SRC}
compat/ftruncate.c
compat/getuid.c
compat/pread.c
compat/pwrite.c
)
endif()
if(NOT "${OPENSSLDIR}" STREQUAL "")
add_definitions(-D_PATH_SSL_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
else()
add_definitions(-D_PATH_SSL_CA_FILE=\"${CMAKE_INSTALL_PREFIX}/etc/ssl/cert.pem\")
endif()
add_library(tls-objects OBJECT ${TLS_SRC})
set(TLS_LIBRARIES tls)
if (BUILD_SHARED)
list(APPEND TLS_LIBRARIES tls-shared)
add_library(tls STATIC $<TARGET_OBJECTS:tls-objects>)
add_library(tls-shared SHARED $<TARGET_OBJECTS:tls-objects>)
export_symbol(tls-shared ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym)
target_link_libraries(tls-shared ssl-shared crypto-shared)
if (WIN32)
target_link_libraries(tls-shared Ws2_32.lib)
set(TLS_POSTFIX -${TLS_MAJOR_VERSION})
endif()
set_target_properties(tls-shared PROPERTIES
OUTPUT_NAME tls${TLS_POSTFIX}
ARCHIVE_OUTPUT_NAME tls${TLS_POSTFIX})
set_target_properties(tls-shared PROPERTIES VERSION ${TLS_VERSION}
SOVERSION ${TLS_MAJOR_VERSION})
else()
add_library(tls STATIC ${TLS_SRC})
endif()
if(ENABLE_LIBRESSL_INSTALL)
install(
TARGETS ${TLS_LIBRARIES}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
endif(ENABLE_LIBRESSL_INSTALL)