From 3128d3153620b5f81e6bc6d9295b67a2d58f7b93 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 27 Feb 2016 01:32:27 +0100 Subject: [PATCH] mingw-w64: build both, shared and static libs --- CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e560172..5d984ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,16 @@ set_target_properties(${META_PROJECT_NAME} PROPERTIES SOVERSION ${META_VERSION_MAJOR} CXX_STANDARD 11 ) +if(MINGW) + # enable static library when building with mingw-w64 + add_library(${META_PROJECT_NAME}_static STATIC ${HEADER_FILES} ${SRC_FILES} ${RES_FILES} ${WINDOWS_ICON_PATH}) + set_target_properties(${META_PROJECT_NAME}_static PROPERTIES + VERSION ${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_PATCH} + SOVERSION ${META_VERSION_MAJOR} + OUTPUT_NAME ${META_PROJECT_NAME} + CXX_STANDARD 11 + ) +endif(MINGW) # add install target install(TARGETS ${META_PROJECT_NAME} @@ -92,6 +102,16 @@ install(TARGETS ${META_PROJECT_NAME} ARCHIVE DESTINATION lib COMPONENT binary ) +if(MINGW) + install(TARGETS ${META_PROJECT_NAME}_static + RUNTIME DESTINATION bin + COMPONENT binary + LIBRARY DESTINATION lib + COMPONENT binary + ARCHIVE DESTINATION lib + COMPONENT binary + ) +endif(MINGW) foreach(HEADER_FILE ${HEADER_FILES}) get_filename_component(HEADER_DIR ${HEADER_FILE} DIRECTORY) install( @@ -123,8 +143,20 @@ if(NOT TARGET install-binary-strip) COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_DO_STRIP=1 -DCMAKE_INSTALL_COMPONENT=binary -P "${CMAKE_BINARY_DIR}/cmake_install.cmake" ) endif() -if(NOT TARGET install-mingw-w64-strip) - add_custom_target(install-mingw-w64-strip - DEPENDS install-binary-strip install-header +if(NOT TARGET install-mingw-w64-importlib-strip) + add_custom_target(install-mingw-w64-importlib-strip + DEPENDS install-binary-strip + COMMAND "${CMAKE_FIND_ROOT_PATH}/bin/strip" --strip-unneeded "${CMAKE_INSTALL_PREFIX}/lib/lib${META_PROJECT_NAME}.dll.a" + ) +endif() +if(NOT TARGET install-mingw-w64-staticlib-strip) + add_custom_target(install-mingw-w64-staticlib-strip + DEPENDS install-binary-strip + COMMAND "${CMAKE_FIND_ROOT_PATH}/bin/strip" -g "${CMAKE_INSTALL_PREFIX}/lib/lib${META_PROJECT_NAME}.a" + ) +endif() +if(NOT TARGET install-mingw-w64-strip) + add_custom_target(install-mingw-w64-strip + DEPENDS install-binary-strip install-mingw-w64-importlib-strip install-mingw-w64-staticlib-strip install-header ) endif()