diff --git a/cmake/QtModuleHelpers.cmake b/cmake/QtModuleHelpers.cmake index 792821777e5..6f85384d5db 100644 --- a/cmake/QtModuleHelpers.cmake +++ b/cmake/QtModuleHelpers.cmake @@ -1238,10 +1238,13 @@ function(qt_internal_collect_module_headers out_var target) get_target_property(target_type ${target} TYPE) if(target_type STREQUAL "INTERFACE_LIBRARY") set(source_dir "${CMAKE_CURRENT_SOURCE_DIR}") + set(binary_dir "${CMAKE_CURRENT_BINARY_DIR}") else() get_target_property(source_dir ${target} SOURCE_DIR) + get_target_property(binary_dir ${target} BINARY_DIR) endif() get_filename_component(source_dir "${source_dir}" ABSOLUTE) + get_filename_component(binary_dir "${binary_dir}" ABSOLUTE) get_target_property(is_3rdparty_library ${target} _qt_module_is_3rdparty_header_library) @@ -1285,7 +1288,14 @@ function(qt_internal_collect_module_headers out_var target) "\nCondition:\n ${condition_string}") endif() - if(file_path MATCHES "3rdparty/.+" AND NOT is_3rdparty_library) + if(is_outside_module_source_dir) + set(base_dir "${binary_dir}") + else() + set(base_dir "${source_dir}") + endif() + + file(RELATIVE_PATH file_path_rel "${base_dir}" "${file_path}") + if(file_path_rel MATCHES "3rdparty/.+" AND NOT is_3rdparty_library) set(is_3rdparty_header TRUE) else() set(is_3rdparty_header FALSE)