Fix static builds
There were a few issues: - Third party dependency info for plugins was not generated, because the depends and public_depends variables were not fetched. This caused issues when trying to use the qcocoa plugin in a consuming application, because Cups::Cups was not found. - Privately linked libraries in extend_target were not considered when generating dependency info for modules. This caused issues in QtThemeSupport, becauese it could not find Qt::DBus, due to that target only being added as a private library in a conditional scope. - Make sure to handle privately linked internal modules like PlatformModuleInternal to map to the Qt5 package, because there is no standalone package for it. Also remove a TODO comment that says that qt_register_target_dependencies should maybe be called in extend_target. That's already the case. Change-Id: Ie99c52e800cd89e6f82008f1e38f4da5cd602929 Reviewed-by: Qt CMake Build Bot Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
parent
319fd4ea9a
commit
fbfa067a30
@ -766,12 +766,13 @@ function(qt_register_target_dependencies target public_libs private_libs)
|
||||
set(target_deps "")
|
||||
endif()
|
||||
|
||||
# TODO: should this also be in extend_target ? From the looks of it I would say that
|
||||
# it is not necessary but I'm not sure
|
||||
foreach(lib IN LISTS public_libs private_libs)
|
||||
if ("${lib}" MATCHES "^Qt::(.*)")
|
||||
set(lib "${CMAKE_MATCH_1}")
|
||||
if (lib STREQUAL Platform OR lib STREQUAL GlobalConfig)
|
||||
if (lib STREQUAL Platform OR lib STREQUAL GlobalConfig
|
||||
OR lib STREQUAL PlatformModuleInternal
|
||||
OR lib STREQUAL PlatformPluginInternal
|
||||
OR lib STREQUAL PlatformToolInternal)
|
||||
list(APPEND target_deps "Qt5\;${PROJECT_VERSION}")
|
||||
elseif ("${lib}" MATCHES "(.*)Private")
|
||||
list(APPEND target_deps "${INSTALL_CMAKE_NAMESPACE}${CMAKE_MATCH_1}\;${PROJECT_VERSION}")
|
||||
@ -871,7 +872,9 @@ function(extend_target target)
|
||||
if(TARGET "${target_private}")
|
||||
target_link_libraries("${target_private}" INTERFACE "${target}" "${qt_libs_private}")
|
||||
endif()
|
||||
qt_register_target_dependencies("${target}" "${arg_PUBLIC_LIBRARIES}" "${qt_libs_private}")
|
||||
qt_register_target_dependencies("${target}"
|
||||
"${arg_PUBLIC_LIBRARIES}"
|
||||
"${qt_libs_private};${arg_LIBRARIES}")
|
||||
|
||||
|
||||
qt_autogen_tools(${target}
|
||||
|
@ -171,6 +171,8 @@ endfunction()
|
||||
|
||||
function(qt_internal_create_plugin_depends_file target)
|
||||
get_target_property(qt_module "${target}" QT_MODULE)
|
||||
get_target_property(depends "${target}" LINK_LIBRARIES)
|
||||
get_target_property(public_depends "${target}" INTERFACE_LINK_LIBRARIES)
|
||||
get_target_property(target_deps "${target}" _qt_target_deps)
|
||||
set(target_deps_seen "")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user