diff options
author | Craig Scott <craig.scott@qt.io> | 2021-09-06 19:32:13 +1000 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-09-06 11:51:39 +0000 |
commit | f659f428c1edf495ac76cbaf96f3e4017d4a13ec (patch) | |
tree | 808fa4757fe38130d8b42a5ad8ea0aca5fbeacb7 | |
parent | 69db9a39cc37b7ee8e533e9db550aae8e6297001 (diff) |
Use functions rather than macros to implement versionless wrappers
Macros add another level of argument escaping compared to functions.
Use functions in versionless wrappers to avoid potential differences
in behavior between versioned and versionless commands.
Amends e4ac6d0fb83b5086bd0864278fa80204ed279306
Task-number: QTBUG-96096
Change-Id: Idc4ccc6294299d45438c4bf93f56447458948f4d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 3d224dc762200e99e04564966c07e3258c393a16)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/linguist/Qt6LinguistToolsMacros.cmake | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/linguist/Qt6LinguistToolsMacros.cmake b/src/linguist/Qt6LinguistToolsMacros.cmake index 452e3f503..eb11458cd 100644 --- a/src/linguist/Qt6LinguistToolsMacros.cmake +++ b/src/linguist/Qt6LinguistToolsMacros.cmake @@ -344,18 +344,29 @@ if(NOT QT_NO_CREATE_VERSIONLESS_FUNCTIONS) message(FATAL_ERROR "qt_add_lupdate() is only available in Qt 6.") endif() endfunction() - macro(qt_add_lrelease) + function(qt_add_lrelease) if(QT_DEFAULT_MAJOR_VERSION EQUAL 6) qt6_add_lrelease(${ARGN}) + cmake_parse_arguments(PARSE_ARGV 1 arg "" "QM_FILES_OUTPUT_VARIABLE" "") + if(arg_QM_FILES_OUTPUT_VARIABLE) + set(${arg_QM_FILES_OUTPUT_VARIABLE} ${${arg_QM_FILES_OUTPUT_VARIABLE}} PARENT_SCOPE) + endif() else() message(FATAL_ERROR "qt_add_lrelease() is only available in Qt 6.") endif() - endmacro() - macro(qt_add_translations) + endfunction() + function(qt_add_translations) if(QT_DEFAULT_MAJOR_VERSION EQUAL 6) qt6_add_translations(${ARGN}) + cmake_parse_arguments(PARSE_ARGV 1 arg "" "OUTPUT_TARGETS;QM_FILES_OUTPUT_VARIABLE" "") + if(arg_OUTPUT_TARGETS) + set(${arg_OUTPUT_TARGETS} ${${arg_OUTPUT_TARGETS}} PARENT_SCOPE) + endif() + if(arg_QM_FILES_OUTPUT_VARIABLE) + set(${arg_QM_FILES_OUTPUT_VARIABLE} ${${arg_QM_FILES_OUTPUT_VARIABLE}} PARENT_SCOPE) + endif() else() message(FATAL_ERROR "qt_add_translations() is only available in Qt 6.") endif() - endmacro() + endfunction() endif() |