diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake index b94a4bdae2b..bc4f1125600 100644 --- a/cmake/QtTargetHelpers.cmake +++ b/cmake/QtTargetHelpers.cmake @@ -51,9 +51,18 @@ function(qt_internal_extend_target target) endforeach() # Set-up the target - target_sources("${target}" PRIVATE ${arg_SOURCES} ${dbus_sources}) - if (arg_COMPILE_FLAGS) - set_source_files_properties(${arg_SOURCES} PROPERTIES COMPILE_FLAGS "${arg_COMPILE_FLAGS}") + + # CMake versions less than 3.19 don't support adding the source files to the PRIVATE scope + # of the INTERFACE libraries. These PRIVATE sources are only needed by IDEs to display + # them in a project tree, so to avoid build issues and appearing the sources in + # INTERFACE_SOURCES property of HEADER_MODULE let's simply exclude them for compatibility + # with CMake versions less than 3.19. + if(NOT arg_HEADER_MODULE OR CMAKE_VERSION VERSION_GREATER_EQUAL "3.19") + target_sources("${target}" PRIVATE ${arg_SOURCES} ${dbus_sources}) + if (arg_COMPILE_FLAGS) + set_source_files_properties(${arg_SOURCES} PROPERTIES + COMPILE_FLAGS "${arg_COMPILE_FLAGS}") + endif() endif() set(public_visibility_option "PUBLIC")