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 "")
|
set(target_deps "")
|
||||||
endif()
|
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)
|
foreach(lib IN LISTS public_libs private_libs)
|
||||||
if ("${lib}" MATCHES "^Qt::(.*)")
|
if ("${lib}" MATCHES "^Qt::(.*)")
|
||||||
set(lib "${CMAKE_MATCH_1}")
|
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}")
|
list(APPEND target_deps "Qt5\;${PROJECT_VERSION}")
|
||||||
elseif ("${lib}" MATCHES "(.*)Private")
|
elseif ("${lib}" MATCHES "(.*)Private")
|
||||||
list(APPEND target_deps "${INSTALL_CMAKE_NAMESPACE}${CMAKE_MATCH_1}\;${PROJECT_VERSION}")
|
list(APPEND target_deps "${INSTALL_CMAKE_NAMESPACE}${CMAKE_MATCH_1}\;${PROJECT_VERSION}")
|
||||||
@ -871,7 +872,9 @@ function(extend_target target)
|
|||||||
if(TARGET "${target_private}")
|
if(TARGET "${target_private}")
|
||||||
target_link_libraries("${target_private}" INTERFACE "${target}" "${qt_libs_private}")
|
target_link_libraries("${target_private}" INTERFACE "${target}" "${qt_libs_private}")
|
||||||
endif()
|
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}
|
qt_autogen_tools(${target}
|
||||||
|
@ -171,6 +171,8 @@ endfunction()
|
|||||||
|
|
||||||
function(qt_internal_create_plugin_depends_file target)
|
function(qt_internal_create_plugin_depends_file target)
|
||||||
get_target_property(qt_module "${target}" QT_MODULE)
|
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)
|
get_target_property(target_deps "${target}" _qt_target_deps)
|
||||||
set(target_deps_seen "")
|
set(target_deps_seen "")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user