diff options
author | Craig Scott <craig.scott@qt.io> | 2021-09-17 16:00:38 +1000 |
---|---|---|
committer | Craig Scott <craig.scott@qt.io> | 2021-09-20 14:23:14 +1000 |
commit | fa9f13f1300cf843aa80786cf4eb217b36aef279 (patch) | |
tree | 7c20db381eb2abd2b96e901f9af0ac559336d771 /src/gui/util | |
parent | c578d9943afd4478d9bf813067b002f2679df1d4 (diff) |
Handle empty string args for versionless wrappers of dbus CMake commands
CMake silently drops empty list items when passing ${someVar} to a
function unquoted. The versionless wrapper functions typically use
${ARGV} or ${ARGN} to pass through arguments from the caller to the
versioned implementation, but this doesn't preserve empty arguments.
For qt_add_dbus_adaptor() in particular, this was problematic because
that meant arguments after the empty arg effectively "moved left" and
were interpreted as the wrong arguments.
Use named arguments and pass through each one explicitly for the
qt_add_dbus_adaptor(). This takes advantage of the implementation of
the versioned function, which also checks each optional positional
argument explicitly. We can only do this because we know the upper
bound on the number of arguments, so it is possible to represent each
argument with its own variable. A more general solution that didn't
need to know the number of arguments would require the
cmake_language(EVAL) command, but that requires CMake 3.18 or later.
Fixes: QTBUG-96594
Pick-to: 6.2
Change-Id: Ibb1de19217191768ca5ead969b20a1d28c466868
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src/gui/util')
0 files changed, 0 insertions, 0 deletions