summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@qt.io>2021-09-06 19:32:13 +1000
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-09-06 11:51:39 +0000
commitf659f428c1edf495ac76cbaf96f3e4017d4a13ec (patch)
tree808fa4757fe38130d8b42a5ad8ea0aca5fbeacb7
parent69db9a39cc37b7ee8e533e9db550aae8e6297001 (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.cmake19
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()