diff --git a/cmake/QtPluginHelpers.cmake b/cmake/QtPluginHelpers.cmake index 1b92a638a0a..4ec7ef60090 100644 --- a/cmake/QtPluginHelpers.cmake +++ b/cmake/QtPluginHelpers.cmake @@ -329,6 +329,7 @@ function(qt_internal_add_plugin target) if(qt_module_target) __qt_internal_add_static_plugin_init_object_library("${target}" plugin_init_target) + qt_internal_link_internal_platform_for_object_library("${plugin_init_target}") endif() endif() diff --git a/cmake/QtResourceHelpers.cmake b/cmake/QtResourceHelpers.cmake index 4b7d81cc7ff..092b1123335 100644 --- a/cmake/QtResourceHelpers.cmake +++ b/cmake/QtResourceHelpers.cmake @@ -87,10 +87,7 @@ function(qt_internal_record_rcc_object_files target resource_targets) endif() set_property(TARGET ${target} APPEND PROPERTY _qt_rcc_objects "${rcc_object_file_path}") - # Make sure that the target cpp files are compiled with the regular Qt internal compile - # flags, needed for building iOS apps with qmake where bitcode is involved. - target_link_libraries("${out_target}" PRIVATE Qt::PlatformModuleInternal) - + qt_internal_link_internal_platform_for_object_library("${out_target}") qt_set_common_target_properties(${out_target}) endforeach() endfunction() diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake index 9c1d0c5157b..75642c70b00 100644 --- a/cmake/QtTargetHelpers.cmake +++ b/cmake/QtTargetHelpers.cmake @@ -762,3 +762,13 @@ endfunction() function(qt_internal_mark_as_internal_library target) set_target_properties(${target} PROPERTIES _qt_is_internal_library TRUE) endfunction() + +function(qt_internal_link_internal_platform_for_object_library target) + # We need to apply iOS bitcode flags to object libraries that are associated with internal + # modules or plugins (e.g. object libraries added by qt_internal_add_resource, + # qt_internal_add_plugin, etc.) + # The flags are needed when building iOS apps because Xcode expects bitcode to be + # present by default. + # Achieve this by compiling the cpp files with the PlatformModuleInternal compile flags. + target_link_libraries("${target}" PRIVATE Qt::PlatformModuleInternal) +endfunction()