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.
This commit is contained in:
Don
2018-03-16 13:59:26 -07:00
parent 639a6629ae
commit 5fb488de9f
3 changed files with 31 additions and 18 deletions

View File

@@ -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 $<TARGET_OBJECTS:crypto-objects>)
add_library(crypto-shared SHARED $<TARGET_OBJECTS:crypto-objects>)
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)