cmake: fix link with mingw

Signed-off-by: Yuhang Zhao <zhaoyuhang@rankyee.com>
This commit is contained in:
Yuhang Zhao 2023-05-26 11:08:08 +08:00
parent 9778582d9b
commit e1cf95f208
4 changed files with 64 additions and 43 deletions

View File

@ -37,7 +37,7 @@ if(NOT TARGET @PROJECT_NAME@::@SUB_MOD_NAME@)
INTERFACE_COMPILE_DEFINITIONS "@SUB_MOD_DEFS@"
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${__import_prefix}/@SUB_MOD_LIB_DIR@/@SUB_MOD_FILE_NAME@"
IMPORTED_IMPLIB "${__import_prefix}/lib/@SUB_MOD_FILE_BASENAME@.lib"
IMPORTED_IMPLIB "${__import_prefix}/lib/@SUB_MOD_IMPLIB_FILE_NAME@"
VERSION "@PROJECT_VERSION@"
SOVERSION "@PROJECT_VERSION_MAJOR@"
__COMMIT "@PROJECT_VERSION_COMMIT@"

View File

@ -181,35 +181,42 @@ else()
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
endif()
set(__prefix "")
if(NOT WIN32)
set(__prefix "lib")
set(SUB_MOD_FILE_PREFIX "")
if(NOT MSVC)
set(SUB_MOD_FILE_PREFIX "lib")
endif()
set(__suffix "")
set(SUB_MOD_FILE_SUFFIX "")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "")
if(FRAMELESSHELPER_BUILD_STATIC)
if(MSVC)
set(__suffix "lib")
set(SUB_MOD_FILE_SUFFIX "lib")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "lib")
else()
set(__suffix "a")
set(SUB_MOD_FILE_SUFFIX "a")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "a")
endif()
else()
if(WIN32)
set(__suffix "dll")
set(SUB_MOD_FILE_SUFFIX "dll")
if(MSVC)
set(SUB_MOD_IMPLIB_FILE_SUFFIX "lib")
else()
set(SUB_MOD_IMPLIB_FILE_SUFFIX "dll.a")
endif()
elseif(APPLE)
set(__suffix "dylib")
elseif(UNIX)
set(__suffix "so")
set(SUB_MOD_FILE_SUFFIX "dylib")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "a")
else()
set(SUB_MOD_FILE_SUFFIX "so")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "a")
endif()
endif()
set(SUB_MOD_FILE_PREFIX "${__prefix}")
set(SUB_MOD_FILE_SUFFIX "${__suffix}")
set(SUB_MOD_FILE_BASENAME "${SUB_MOD_FILE_PREFIX}${SUB_PROJ_NAME}")
if("x${CMAKE_BUILD_TYPE}" STREQUAL "xDebug")
string(APPEND SUB_MOD_FILE_BASENAME "${CMAKE_DEBUG_POSTFIX}")
endif()
set(SUB_MOD_FILE_NAME "${SUB_MOD_FILE_BASENAME}.${SUB_MOD_FILE_SUFFIX}")
unset(__suffix)
unset(__prefix)
set(SUB_MOD_IMPLIB_FILE_NAME "${SUB_MOD_FILE_BASENAME}.${SUB_MOD_IMPLIB_FILE_SUFFIX}")
if(NOT FRAMELESSHELPER_NO_BUNDLE_RESOURCE)
if(QT_VERSION VERSION_GREATER_EQUAL "6.2")

View File

@ -125,35 +125,42 @@ else()
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
endif()
set(__prefix "")
if(NOT WIN32)
set(__prefix "lib")
set(SUB_MOD_FILE_PREFIX "")
if(NOT MSVC)
set(SUB_MOD_FILE_PREFIX "lib")
endif()
set(__suffix "")
set(SUB_MOD_FILE_SUFFIX "")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "")
if(FRAMELESSHELPER_BUILD_STATIC)
if(MSVC)
set(__suffix "lib")
set(SUB_MOD_FILE_SUFFIX "lib")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "lib")
else()
set(__suffix "a")
set(SUB_MOD_FILE_SUFFIX "a")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "a")
endif()
else()
if(WIN32)
set(__suffix "dll")
set(SUB_MOD_FILE_SUFFIX "dll")
if(MSVC)
set(SUB_MOD_IMPLIB_FILE_SUFFIX "lib")
else()
set(SUB_MOD_IMPLIB_FILE_SUFFIX "dll.a")
endif()
elseif(APPLE)
set(__suffix "dylib")
elseif(UNIX)
set(__suffix "so")
set(SUB_MOD_FILE_SUFFIX "dylib")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "a")
else()
set(SUB_MOD_FILE_SUFFIX "so")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "a")
endif()
endif()
set(SUB_MOD_FILE_PREFIX "${__prefix}")
set(SUB_MOD_FILE_SUFFIX "${__suffix}")
set(SUB_MOD_FILE_BASENAME "${SUB_MOD_FILE_PREFIX}${SUB_PROJ_NAME}")
if("x${CMAKE_BUILD_TYPE}" STREQUAL "xDebug")
string(APPEND SUB_MOD_FILE_BASENAME "${CMAKE_DEBUG_POSTFIX}")
endif()
set(SUB_MOD_FILE_NAME "${SUB_MOD_FILE_BASENAME}.${SUB_MOD_FILE_SUFFIX}")
unset(__suffix)
unset(__prefix)
set(SUB_MOD_IMPLIB_FILE_NAME "${SUB_MOD_FILE_BASENAME}.${SUB_MOD_IMPLIB_FILE_SUFFIX}")
set(__import_base_dir "${PROJECT_BINARY_DIR}/imports")
if(DEFINED FRAMELESSHELPER_IMPORT_DIR)

View File

@ -113,35 +113,42 @@ else()
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
endif()
set(__prefix "")
if(NOT WIN32)
set(__prefix "lib")
set(SUB_MOD_FILE_PREFIX "")
if(NOT MSVC)
set(SUB_MOD_FILE_PREFIX "lib")
endif()
set(__suffix "")
set(SUB_MOD_FILE_SUFFIX "")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "")
if(FRAMELESSHELPER_BUILD_STATIC)
if(MSVC)
set(__suffix "lib")
set(SUB_MOD_FILE_SUFFIX "lib")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "lib")
else()
set(__suffix "a")
set(SUB_MOD_FILE_SUFFIX "a")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "a")
endif()
else()
if(WIN32)
set(__suffix "dll")
set(SUB_MOD_FILE_SUFFIX "dll")
if(MSVC)
set(SUB_MOD_IMPLIB_FILE_SUFFIX "lib")
else()
set(SUB_MOD_IMPLIB_FILE_SUFFIX "dll.a")
endif()
elseif(APPLE)
set(__suffix "dylib")
elseif(UNIX)
set(__suffix "so")
set(SUB_MOD_FILE_SUFFIX "dylib")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "a")
else()
set(SUB_MOD_FILE_SUFFIX "so")
set(SUB_MOD_IMPLIB_FILE_SUFFIX "a")
endif()
endif()
set(SUB_MOD_FILE_PREFIX "${__prefix}")
set(SUB_MOD_FILE_SUFFIX "${__suffix}")
set(SUB_MOD_FILE_BASENAME "${SUB_MOD_FILE_PREFIX}${SUB_PROJ_NAME}")
if("x${CMAKE_BUILD_TYPE}" STREQUAL "xDebug")
string(APPEND SUB_MOD_FILE_BASENAME "${CMAKE_DEBUG_POSTFIX}")
endif()
set(SUB_MOD_FILE_NAME "${SUB_MOD_FILE_BASENAME}.${SUB_MOD_FILE_SUFFIX}")
unset(__suffix)
unset(__prefix)
set(SUB_MOD_IMPLIB_FILE_NAME "${SUB_MOD_FILE_BASENAME}.${SUB_MOD_IMPLIB_FILE_SUFFIX}")
if(FRAMELESSHELPER_BUILD_STATIC)
set(__def FRAMELESSHELPER_WIDGETS_STATIC)