summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/QtPostProcessHelpers.cmake13
1 files changed, 12 insertions, 1 deletions
diff --git a/cmake/QtPostProcessHelpers.cmake b/cmake/QtPostProcessHelpers.cmake
index 56b2d5e56f..4f8106dfae 100644
--- a/cmake/QtPostProcessHelpers.cmake
+++ b/cmake/QtPostProcessHelpers.cmake
@@ -25,7 +25,7 @@ macro(qt_collect_third_party_deps target)
endif()
unset(_target_is_static)
- foreach(dep ${${depends_var}})
+ foreach(dep ${${depends_var}} ${optional_public_depends})
# Gather third party packages that should be found when using the Qt module.
# Also handle nolink target dependencies.
string(REGEX REPLACE "_nolink$" "" base_dep "${dep}")
@@ -44,6 +44,9 @@ macro(qt_collect_third_party_deps target)
if(dep_seen EQUAL -1 AND package_name)
list(APPEND third_party_deps_seen ${dep})
get_target_property(package_is_optional ${dep} INTERFACE_QT_PACKAGE_IS_OPTIONAL)
+ if(NOT package_is_optional AND dep IN_LIST optional_public_depends)
+ set(package_is_optional TRUE)
+ endif()
get_target_property(package_version ${dep} INTERFACE_QT_PACKAGE_VERSION)
if(NOT package_version)
set(package_version "")
@@ -76,6 +79,11 @@ function(qt_internal_create_module_depends_file target)
get_target_property(public_depends "${target}" INTERFACE_LINK_LIBRARIES)
+ unset(optional_public_depends)
+ if(TARGET "${target}Private")
+ get_target_property(optional_public_depends "${target}Private" INTERFACE_LINK_LIBRARIES)
+ endif()
+
# Used for collecting Qt module dependencies that should be find_package()'d in
# ModuleDependencies.cmake.
get_target_property(target_deps "${target}" _qt_target_deps)
@@ -227,6 +235,7 @@ function(qt_internal_create_plugin_depends_file target)
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)
+ unset(optional_public_depends)
set(target_deps_seen "")
qt_collect_third_party_deps(${target})
@@ -288,6 +297,8 @@ function(qt_internal_create_qt6_dependencies_file)
# This is the actual target we're querying.
set(actual_target Platform)
get_target_property(public_depends "${actual_target}" INTERFACE_LINK_LIBRARIES)
+ unset(depends)
+ unset(optional_public_depends)
# We need to collect third party deps that are set on the public Platform target,
# like Threads::Threads.