From e0d709d8d3535a897de359eb9a0f33867b5ae040 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 17 Nov 2020 22:01:09 +0100 Subject: [PATCH] CMake: Fix missing dependencies in *Depends headers In qt_internal_create_module_depends_file we're checking the target property INTERFACE_MODULE_HAS_HEADERS. However, this property is not exported, and in per-repo builds we do not have access to this. As we cannot export INTERFACE_* properties, we export another one, called _qt_module_has_headers. This amends commit 598e873c84e6544aa67495b9b9fb1ff22f98a293. Fixes: QTBUG-88503 Change-Id: I04b3e24add6e95b577a049c80683b7361ff72f59 Reviewed-by: Alexandru Croitor --- cmake/QtModuleHelpers.cmake | 9 +++++++-- cmake/QtPostProcessHelpers.cmake | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/cmake/QtModuleHelpers.cmake b/cmake/QtModuleHelpers.cmake index a628ac923d1..1a482ff81bc 100644 --- a/cmake/QtModuleHelpers.cmake +++ b/cmake/QtModuleHelpers.cmake @@ -158,8 +158,11 @@ function(qt_internal_add_module target) endif() # Module headers: + set_property(TARGET "${target}" APPEND PROPERTY EXPORT_PROPERTIES _qt_module_has_headers) if(${arg_NO_MODULE_HEADERS} OR ${arg_NO_SYNC_QT}) - set_target_properties("${target}" PROPERTIES INTERFACE_MODULE_HAS_HEADERS OFF) + set_target_properties("${target}" PROPERTIES + INTERFACE_MODULE_HAS_HEADERS OFF + _qt_module_has_headers OFF) else() set_target_properties("${target}" PROPERTIES INTERFACE_MODULE_INCLUDE_NAME "${module_include_name}") @@ -178,7 +181,9 @@ function(qt_internal_add_module target) message(STATUS "Running syncqt for module: '${module_include_name}' ") execute_process(COMMAND ${syncqt_full_command}) - set_target_properties("${target}" PROPERTIES INTERFACE_MODULE_HAS_HEADERS ON) + set_target_properties("${target}" PROPERTIES + INTERFACE_MODULE_HAS_HEADERS ON + _qt_module_has_headers ON) ### FIXME: Can we replace headers.pri? set(module_include_dir "${QT_BUILD_DIR}/include/${module_include_name}") diff --git a/cmake/QtPostProcessHelpers.cmake b/cmake/QtPostProcessHelpers.cmake index 597e59be074..09a5b964792 100644 --- a/cmake/QtPostProcessHelpers.cmake +++ b/cmake/QtPostProcessHelpers.cmake @@ -139,7 +139,13 @@ function(qt_internal_create_module_depends_file target) continue() endif() else() - get_target_property(module_has_headers Qt::${dep} INTERFACE_MODULE_HAS_HEADERS) + get_target_property(is_versionless_target Qt::${dep} _qt_is_versionless_target) + if(is_versionless_target) + get_target_property(module_has_headers ${QT_CMAKE_EXPORT_NAMESPACE}::${dep} + _qt_module_has_headers) + else() + get_target_property(module_has_headers Qt::${dep} _qt_module_has_headers) + endif() if (NOT module_has_headers) continue() endif()