diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake index 2c15b85a58..9f4ef66c8c 100644 --- a/cmake/QtTargetHelpers.cmake +++ b/cmake/QtTargetHelpers.cmake @@ -787,6 +787,26 @@ function(qt_internal_link_internal_platform_for_object_library target) target_link_libraries("${target}" PRIVATE Qt::PlatformModuleInternal) endfunction() +# Use ${dep_target}'s include dirs when building ${target}. +# +# Assumes ${dep_target} is an INTERFACE_LIBRARY that only propagates include dirs and ${target} +# is a Qt module / plugin. +# +# Building ${target} requires ${dep_target}'s include dirs. +# Using ${target} does not require ${dep_target}'s include dirs. +# +# The main use case is adding the private header-only dependency PkgConfig::ATSPI2. +function(qt_internal_add_target_include_dirs target dep_target) + if(NOT TARGET "${target}") + message(FATAL_ERROR "${target} is not a valid target.") + endif() + if(NOT TARGET "${dep_target}") + message(FATAL_ERROR "${dep_target} is not a valid target.") + endif() + + target_include_directories("${target}" PRIVATE + "$") +endfunction() # Use ${dep_target}'s include dirs when building ${target} and optionally propagate the include # dirs to consumers of ${target}. @@ -809,15 +829,7 @@ endfunction() # # The main use case is for propagating WrapVulkanHeaders::WrapVulkanHeaders. function(qt_internal_add_target_include_dirs_and_optionally_propagate target dep_target) - if(NOT TARGET "${target}") - message(FATAL_ERROR "${target} is not a valid target.") - endif() - if(NOT TARGET "${dep_target}") - message(FATAL_ERROR "${dep_target} is not a valid target.") - endif() - - target_include_directories("${target}" PRIVATE - "$") + qt_internal_add_target_include_dirs(${target} ${dep_target}) target_link_libraries("${target}" INTERFACE "$") diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 2e81e9969b..ef0bdfee0b 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -498,7 +498,13 @@ qt_internal_extend_target(Gui CONDITION QT_FEATURE_accessibility AND WIN32 accessible/windows/apisupport/uiatypes_p.h ) -qt_internal_extend_target(Gui CONDITION QT_FEATURE_accessibility AND QT_FEATURE_accessibility_atspi_bridge +if(QT_FEATURE_accessibility AND QT_FEATURE_accessibility_atspi_bridge) + set(atspi_accessibility ON) +else() + set(atspi_accessibility OFF) +endif() + +qt_internal_extend_target(Gui CONDITION atspi_accessibility SOURCES accessible/linux/atspiadaptor.cpp accessible/linux/atspiadaptor_p.h accessible/linux/dbusconnection.cpp accessible/linux/dbusconnection_p.h @@ -519,10 +525,12 @@ qt_internal_extend_target(Gui CONDITION QT_FEATURE_accessibility AND QT_FEATURE_ DBUS_INTERFACE_FLAGS "-i" "QtGui/private/qspi_struct_marshallers_p.h" # special case end - LIBRARIES - PkgConfig::ATSPI2_nolink ) +if(atspi_accessibility) + qt_internal_add_target_include_dirs(Gui PkgConfig::ATSPI2) +endif() + qt_internal_extend_target(Gui CONDITION QT_FEATURE_action SOURCES kernel/qaction.cpp kernel/qaction.h kernel/qaction_p.h