From c4082d90c71353bcfcaafa03d67515c6e2963739 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 27 Feb 2016 01:18:19 +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 ea10920..cd269d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,6 +121,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 check target if(NOT TARGET check) @@ -143,6 +153,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( @@ -174,8 +194,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()