diff --git a/cmake/QtBuildHelpers.cmake b/cmake/QtBuildHelpers.cmake index e7cd9885adc..5032745034b 100644 --- a/cmake/QtBuildHelpers.cmake +++ b/cmake/QtBuildHelpers.cmake @@ -289,6 +289,7 @@ function(qt_internal_get_qt_build_public_helpers out_var) QtPublicFindPackageHelpers QtPublicGitHelpers QtPublicPluginHelpers + QtPublicPluginHelpers_v2 QtPublicSbomGenerationHelpers QtPublicSbomHelpers QtPublicTargetHelpers diff --git a/cmake/QtPublicPluginHelpers_v2.cmake b/cmake/QtPublicPluginHelpers_v2.cmake new file mode 100644 index 00000000000..7aabce108f2 --- /dev/null +++ b/cmake/QtPublicPluginHelpers_v2.cmake @@ -0,0 +1,30 @@ +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +function(__qt_internal_collect_plugin_targets_from_dependencies_v2 target out_var) + if(CMAKE_VERSION VERSION_LESS 3.30) + __qt_internal_collect_plugin_targets_from_dependencies("${target}" "${out_var}") + set(${out_var} "${${out_var}}" PARENT_SCOPE) + return() + endif() + set("${out_var}" "$" PARENT_SCOPE) +endfunction() + +function(__qt_internal_collect_plugin_library_files_v2 target plugin_targets out_var) + if(CMAKE_VERSION VERSION_LESS 3.30) + __qt_internal_collect_plugin_library_files("${target}" "${plugin_targets}" "${out_var}") + set(${out_var} "${${out_var}}" PARENT_SCOPE) + return() + endif() + + set(plugin_targets "$") + + # Convert the list of plugin targets to a list of plugin files + set(pre_genex "$$<1:") + set(post_genex "$") + set(glue "${post_genex};${pre_genex}") + set("${out_var}" + "$<$:$${post_genex}>>" + PARENT_SCOPE + ) +endfunction() diff --git a/src/corelib/Qt6AndroidMacros.cmake b/src/corelib/Qt6AndroidMacros.cmake index 0d403714de3..484df50e667 100644 --- a/src/corelib/Qt6AndroidMacros.cmake +++ b/src/corelib/Qt6AndroidMacros.cmake @@ -290,8 +290,8 @@ function(qt6_android_generate_deployment_settings target) _qt_internal_add_android_deployment_property(file_contents "android-no-deploy-qt-libs" ${target} "QT_ANDROID_NO_DEPLOY_QT_LIBS") - __qt_internal_collect_plugin_targets_from_dependencies("${target}" plugin_targets) - __qt_internal_collect_plugin_library_files("${target}" "${plugin_targets}" plugin_targets) + __qt_internal_collect_plugin_targets_from_dependencies_v2("${target}" plugin_targets) + __qt_internal_collect_plugin_library_files_v2("${target}" "${plugin_targets}" plugin_targets) string(APPEND file_contents " \"android-deploy-plugins\":\"${plugin_targets}\",\n") _qt_internal_generate_android_permissions_json(permissions_json_array "${target}")