Fix using static Qt without 'Static' prefix
This commit is contained in:
parent
2d155e48ac
commit
bbee85ce07
|
@ -18,7 +18,7 @@ endif()
|
|||
# also add additional Qt/KF modules which must have been specified before if required
|
||||
# the Gui/Widgets/Quick modules should be added by including QtGuiAppConfig
|
||||
set(QT_REPOS base ${ADDITIONAL_QT_REPOS})
|
||||
set(QT_MODULES Core ${ADDITIONAL_QT_MODULES})
|
||||
set(QT_MODULES ${ADDITIONAL_QT_MODULES} Core)
|
||||
set(KF_MODULES ${ADDITIONAL_KF_MODULES})
|
||||
|
||||
# allow specifying a custom directory for Qt plugins
|
||||
|
|
|
@ -25,7 +25,7 @@ if(NOT DEFINED QT_LINKAGE_DETERMINED)
|
|||
# determine whether the library is required or optional
|
||||
# FIXME: improve passing required argument
|
||||
if("${REQUIRED}" STREQUAL "OPTIONAL")
|
||||
set(${MODULE}_REQUIRED "")
|
||||
unset(QT_5_${MODULE}_REQUIRED)
|
||||
elseif("${REQUIRED}" STREQUAL "REQUIRED")
|
||||
set(QT_5_${MODULE}_REQUIRED "REQUIRED")
|
||||
else()
|
||||
|
@ -37,7 +37,7 @@ if(NOT DEFINED QT_LINKAGE_DETERMINED)
|
|||
# check for 'Static'-prefixed CMake module first
|
||||
# - patched mingw-w64-qt5 packages providing those files are available in my PKGBUILDs repository
|
||||
# - has the advantage that usage of dynamic and static Qt during the same build is possible
|
||||
find_package(StaticQt5${MODULE} ${META_QT5_VERSION} ${QT_5_${MODULE}_REQUIRED})
|
||||
find_package(StaticQt5${MODULE} ${META_QT5_VERSION})
|
||||
if(StaticQt5${MODULE}_FOUND)
|
||||
if(TARGET StaticQt5::${MODULE})
|
||||
set(QT5_${MODULE}_STATIC_PREFIX "StaticQt5::")
|
||||
|
@ -54,17 +54,15 @@ if(NOT DEFINED QT_LINKAGE_DETERMINED)
|
|||
# consider the regular Qt package (without "Static" prefix) the static version if
|
||||
# static Qt is required and Qt package with "Static" prefix doesn't exist
|
||||
# (fallback if not using patched version of Qt mentioned above)
|
||||
if(USE_STATIC_QT_BUILD AND NOT StaticQt5${MODULE}_FOUND AND Qt5${MODULE}_FOUND)
|
||||
find_package(Qt5${MODULE} ${META_QT5_VERSION} ${QT_5_${MODULE}_REQUIRED})
|
||||
if(Qt5${MODULE}_FOUND)
|
||||
set(QT5_${MODULE}_STATIC_PREFIX "Qt5::")
|
||||
set(QT5_${MODULE}_STATIC_LIB "${QT5_${MODULE}_STATIC_PREFIX}${MODULE}")
|
||||
set(QT5_${MODULE}_ASSUME_STATIC ON)
|
||||
set(QT5_${MODULE}_FOUND ON)
|
||||
# reverse lookup for pkg-config
|
||||
set(PC_PKG_STATIC_Qt5_${MODULE} "Qt5${MODULE}")
|
||||
message(WARNING "Building static libs and/or static Qt linkage has been enabled. Hence assuming provided Qt 5 module ${MODULE} is static.")
|
||||
endif()
|
||||
find_package(Qt5${MODULE} ${META_QT5_VERSION} ${QT_5_${MODULE}_REQUIRED})
|
||||
if(Qt5${MODULE}_FOUND)
|
||||
set(QT5_${MODULE}_STATIC_PREFIX "Qt5::")
|
||||
set(QT5_${MODULE}_STATIC_LIB "${QT5_${MODULE}_STATIC_PREFIX}${MODULE}")
|
||||
set(QT5_${MODULE}_ASSUME_STATIC ON)
|
||||
set(QT5_${MODULE}_FOUND ON)
|
||||
# reverse lookup for pkg-config
|
||||
set(PC_PKG_STATIC_Qt5_${MODULE} "Qt5${MODULE}")
|
||||
message(WARNING "Building static libs and/or static Qt linkage has been enabled. Hence assuming provided Qt 5 module ${MODULE} is static.")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
@ -86,16 +84,21 @@ if(NOT DEFINED QT_LINKAGE_DETERMINED)
|
|||
|
||||
macro(use_qt5_module MODULE REQUIRED)
|
||||
if(${MODULE} IN_LIST META_PUBLIC_QT_MODULES)
|
||||
list(APPEND META_PUBLIC_SHARED_LIB_DEPENDS ${QT5_${MODULE}_DYNAMIC_LIB})
|
||||
list(APPEND META_PUBLIC_STATIC_LIB_DEPENDS ${QT5_${MODULE}_STATIC_LIB})
|
||||
list(APPEND META_PUBLIC_SHARED_LIB_DEPENDS QT5_${MODULE})
|
||||
list(APPEND META_PUBLIC_STATIC_LIB_DEPENDS QT5_${MODULE})
|
||||
endif()
|
||||
link_against_library("QT5_${MODULE}" "${QT_LINKAGE}" "${REQUIRED}")
|
||||
endmacro()
|
||||
|
||||
macro(use_static_qt5_plugin MODULE PLUGIN)
|
||||
list(APPEND PRIVATE_LIBRARIES "${QT5_${MODULE}_STATIC_PREFIX}Q${PLUGIN}Plugin")
|
||||
list(APPEND PRIVATE_STATIC_LIBRARIES "${QT5_${MODULE}_STATIC_PREFIX}Q${PLUGIN}Plugin")
|
||||
message(STATUS "Linking ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} against static Qt 5 plugin ${QT5_${MODULE}_STATIC_PREFIX}Q${PLUGIN}Plugin")
|
||||
if(QT5_${MODULE}_STATIC_LIB IN_LIST LIBRARIES OR QT5_${MODULE}_STATIC_LIB IN_LIST PRIVATE_LIBRARIES)
|
||||
list(APPEND PRIVATE_LIBRARIES "${QT5_${MODULE}_STATIC_PREFIX}Q${PLUGIN}Plugin")
|
||||
message(STATUS "Linking ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} against static Qt 5 plugin ${QT5_${MODULE}_STATIC_PREFIX}Q${PLUGIN}Plugin")
|
||||
endif()
|
||||
if(QT5_${MODULE}_STATIC_LIB IN_LIST STATIC_LIBRARIES OR QT5_${MODULE}_STATIC_LIB IN_LIST PRIVATE_STATIC_LIBRARIES)
|
||||
list(APPEND PRIVATE_STATIC_LIBRARIES "${QT5_${MODULE}_STATIC_PREFIX}Q${PLUGIN}Plugin")
|
||||
message(STATUS "Adding static Qt 5 plugin ${QT5_${MODULE}_STATIC_PREFIX}Q${PLUGIN}Plugin to dependencies of static ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
set(QT_LINKAGE_DETERMINED YES)
|
||||
|
|
Loading…
Reference in New Issue