From 0a4d0ac013c276f32c23d9a7f51d88a853fc60df Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 13 Oct 2022 08:52:00 +0200 Subject: [PATCH] CMake: Add filter options to qt_generate_deploy_app_script Add the options PRE_INCLUDE_REGEXES, PRE_EXCLUDE_REGEXES, POST_INCLUDE_REGEXES, POST_EXCLUDE_REGEXES, POST_INCLUDE_FILES, and POST_EXCLUDE_FILES. These are forwarded to qt_deploy_runtime_dependencies. Change-Id: I003814bec7f797a0035e52b17fd0231f9ad7ff0d Reviewed-by: Paul Wicking Reviewed-by: Alexandru Croitor Reviewed-by: Leena Miettinen --- src/corelib/Qt6CoreMacros.cmake | 20 ++++++++++++++++++- .../cmake/qt_generate_deploy_app_script.qdoc | 12 +++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/corelib/Qt6CoreMacros.cmake b/src/corelib/Qt6CoreMacros.cmake index d72d16a04a5..f7cb1a0d3a4 100644 --- a/src/corelib/Qt6CoreMacros.cmake +++ b/src/corelib/Qt6CoreMacros.cmake @@ -2732,7 +2732,18 @@ function(qt6_generate_deploy_app_script) TARGET FILENAME_VARIABLE ) - set(multi_value_options "") + set(qt_deploy_runtime_dependencies_options + # These options are forwarded as is to qt_deploy_runtime_dependencies. + PRE_INCLUDE_REGEXES + PRE_EXCLUDE_REGEXES + POST_INCLUDE_REGEXES + POST_EXCLUDE_REGEXES + POST_INCLUDE_FILES + POST_EXCLUDE_FILES + ) + set(multi_value_options + ${qt_deploy_runtime_dependencies_options} + ) cmake_parse_arguments(PARSE_ARGV 0 arg "${no_value_options}" "${single_value_options}" "${multi_value_options}" ) @@ -2762,6 +2773,13 @@ function(qt6_generate_deploy_app_script) string(APPEND common_deploy_args " NO_TRANSLATIONS\n") endif() + # Forward the arguments that are exactly the same for qt_deploy_runtime_dependencies. + foreach(var IN LISTS qt_deploy_runtime_dependencies_options) + if(NOT "${arg_${var}}" STREQUAL "") + list(APPEND common_deploy_args ${var} ${arg_${var}}) + endif() + endforeach() + if(APPLE AND NOT IOS AND QT6_IS_SHARED_LIBS_BUILD) # TODO: Handle non-bundle applications if possible. get_target_property(is_bundle ${arg_TARGET} MACOSX_BUNDLE) diff --git a/src/corelib/doc/src/cmake/qt_generate_deploy_app_script.qdoc b/src/corelib/doc/src/cmake/qt_generate_deploy_app_script.qdoc index f156db17c94..32e6e3bb6a5 100644 --- a/src/corelib/doc/src/cmake/qt_generate_deploy_app_script.qdoc +++ b/src/corelib/doc/src/cmake/qt_generate_deploy_app_script.qdoc @@ -24,6 +24,12 @@ qt_generate_deploy_app_script( FILENAME_VARIABLE var_name [NO_TRANSLATIONS] [NO_UNSUPPORTED_PLATFORM_ERROR] + [PRE_INCLUDE_REGEXES regexes...] + [PRE_EXCLUDE_REGEXES regexes...] + [POST_INCLUDE_REGEXES regexes...] + [POST_EXCLUDE_REGEXES regexes...] + [POST_INCLUDE_FILES files...] + [POST_EXCLUDE_FILES files...] ) \endcode @@ -72,6 +78,12 @@ instead. For generating a custom deployment script, use \l{qt6_generate_deploy_script}{qt_generate_deploy_script}. +The options \c{PRE_INCLUDE_REGEXES}, \c{PRE_EXCLUDE_REGEXES}, +\c{POST_INCLUDE_REGEXES}, \c{POST_EXCLUDE_REGEXES}, \c{POST_INCLUDE_FILES}, and +\c{POST_EXCLUDE_FILES} can be specified to control the deployment of runtime +dependencies. These options do not apply to all platforms and are forwarded +unmodified to \l{qt_deploy_runtime_dependencies()}. + \sa {qt6_standard_project_setup}{qt_standard_project_setup()}, {qt6_generate_deploy_script}{qt_generate_deploy_script()}, {qt6_generate_deploy_qml_app_script}{qt_generate_deploy_qml_app_script()}