From 5fb488de9f70d9d306c83d1316998e86d95f4a4e Mon Sep 17 00:00:00 2001 From: Don Date: Fri, 16 Mar 2018 13:59:26 -0700 Subject: 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. --- crypto/CMakeLists.txt | 16 ++++++++++------ ssl/CMakeLists.txt | 17 +++++++++++------ tls/CMakeLists.txt | 16 ++++++++++------ 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 0615110..1a2b6e0 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -807,7 +807,9 @@ if(EXTRA_EXPORT) endif() add_library(crypto-objects OBJECT ${CRYPTO_SRC}) +set(CRYPTO_LIBRARIES crypto) if (BUILD_SHARED) + list(APPEND CRYPTO_LIBRARIES crypto-shared) add_library(crypto STATIC $) add_library(crypto-shared SHARED $) export_symbol(crypto-shared ${CMAKE_CURRENT_SOURCE_DIR}/crypto_p.sym) @@ -820,13 +822,15 @@ if (BUILD_SHARED) ARCHIVE_OUTPUT_NAME crypto${CRYPTO_POSTFIX}) set_target_properties(crypto-shared PROPERTIES VERSION ${CRYPTO_VERSION} SOVERSION ${CRYPTO_MAJOR_VERSION}) - if(ENABLE_LIBRESSL_INSTALL) - install(TARGETS crypto crypto-shared DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif(ENABLE_LIBRESSL_INSTALL) else() add_library(crypto STATIC ${CRYPTO_SRC}) - if(ENABLE_LIBRESSL_INSTALL) - install(TARGETS crypto DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif(ENABLE_LIBRESSL_INSTALL) endif() +if(ENABLE_LIBRESSL_INSTALL) + install( + TARGETS ${CRYPTO_LIBRARIES} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) +endif(ENABLE_LIBRESSL_INSTALL) diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt index 3ea16a8..93f20ee 100644 --- a/ssl/CMakeLists.txt +++ b/ssl/CMakeLists.txt @@ -47,7 +47,9 @@ set( ) add_library(ssl-objects OBJECT ${SSL_SRC}) +set(SSL_LIBRARIES ssl) if (BUILD_SHARED) + list(APPEND SSL_LIBRARIES ssl-shared) add_library(ssl STATIC $) add_library(ssl-shared SHARED $) export_symbol(ssl-shared ${CMAKE_CURRENT_SOURCE_DIR}/ssl.sym) @@ -61,12 +63,15 @@ if (BUILD_SHARED) ARCHIVE_OUTPUT_NAME ssl${SSL_POSTFIX}) set_target_properties(ssl-shared PROPERTIES VERSION ${SSL_VERSION} SOVERSION ${SSL_MAJOR_VERSION}) - if(ENABLE_LIBRESSL_INSTALL) - install(TARGETS ssl ssl-shared DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif(ENABLE_LIBRESSL_INSTALL) else() add_library(ssl STATIC ${SSL_SRC}) - if(ENABLE_LIBRESSL_INSTALL) - install(TARGETS ssl DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif(ENABLE_LIBRESSL_INSTALL) endif() + +if(ENABLE_LIBRESSL_INSTALL) + install( + TARGETS ${SSL_LIBRARIES} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) +endif(ENABLE_LIBRESSL_INSTALL) diff --git a/tls/CMakeLists.txt b/tls/CMakeLists.txt index 0e13da5..71f505a 100644 --- a/tls/CMakeLists.txt +++ b/tls/CMakeLists.txt @@ -37,7 +37,9 @@ else() 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 $) add_library(tls-shared SHARED $) export_symbol(tls-shared ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym) @@ -51,13 +53,15 @@ if (BUILD_SHARED) ARCHIVE_OUTPUT_NAME tls${TLS_POSTFIX}) set_target_properties(tls-shared PROPERTIES VERSION ${TLS_VERSION} SOVERSION ${TLS_MAJOR_VERSION}) - if(ENABLE_LIBRESSL_INSTALL) - install(TARGETS tls tls-shared DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif(ENABLE_LIBRESSL_INSTALL) else() add_library(tls STATIC ${TLS_SRC}) - if(ENABLE_LIBRESSL_INSTALL) - install(TARGETS tls DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif(ENABLE_LIBRESSL_INSTALL) 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) -- cgit v1.2.3-55-g6feb