diff options
author | Ralf Habacker <ralf.habacker@freenet.de> | 2023-12-11 22:30:03 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-12-13 15:20:41 (GMT) |
commit | 478a5f4e044d253971e71a41ad6fc6b8aa4e1c07 (patch) | |
tree | a20da67142a7a14076f8aeed145c780963650450 | |
parent | b44e38a39736318aaf21a6865fdbee28a0e26700 (diff) | |
download | CMake-478a5f4e044d253971e71a41ad6fc6b8aa4e1c07.zip CMake-478a5f4e044d253971e71a41ad6fc6b8aa4e1c07.tar.gz CMake-478a5f4e044d253971e71a41ad6fc6b8aa4e1c07.tar.bz2 |
fileapi: Make launcher attribute 'arguments' optional
This was missed in commit 80a64c9ce5 (fileapi: Add cross-compiling
emulator to codemodel-v2, 2023-11-11).
-rw-r--r-- | Source/cmFileAPICodemodel.cxx | 4 | ||||
-rw-r--r-- | Tests/RunCMake/FileAPI/codemodel-v2-check.py | 15 | ||||
-rw-r--r-- | Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_cross_emulator.json | 1 |
3 files changed, 12 insertions, 8 deletions
diff --git a/Source/cmFileAPICodemodel.cxx b/Source/cmFileAPICodemodel.cxx index c0c9b75..e67d91f 100644 --- a/Source/cmFileAPICodemodel.cxx +++ b/Source/cmFileAPICodemodel.cxx @@ -2102,7 +2102,9 @@ Json::Value Target::DumpLauncher(const char* name, const char* type) for (std::string const& arg : cmMakeRange(commandWithArgs).advance(1)) { args.append(arg); } - launcher["arguments"] = std::move(args); + if (!args.empty()) { + launcher["arguments"] = std::move(args); + } } return launcher; } diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-check.py b/Tests/RunCMake/FileAPI/codemodel-v2-check.py index cb90eba..f46448b 100644 --- a/Tests/RunCMake/FileAPI/codemodel-v2-check.py +++ b/Tests/RunCMake/FileAPI/codemodel-v2-check.py @@ -410,15 +410,18 @@ def check_target(c): expected_keys.append("launchers") def check_launcher(actual, expected): assert is_dict(actual) - launcher_keys = ["arguments", "command", "type"] + launcher_keys = ["command", "type"] + if "arguments" in expected: + launcher_keys.append("arguments") assert sorted(actual.keys()) == sorted(launcher_keys) assert matches(actual["command"], expected["command"]) assert matches(actual["type"], expected["type"]) - if expected["arguments"] is not None: - check_list_match(lambda a, e: matches(a, e), - actual["arguments"], expected["arguments"], - missing_exception=lambda e: "argument: %s" % e, - extra_exception=lambda a: "argument: %s" % actual["arguments"]) + if "arguments" in expected: + if expected["arguments"] is not None: + check_list_match(lambda a, e: matches(a, e), + actual["arguments"], expected["arguments"], + missing_exception=lambda e: "argument: %s" % e, + extra_exception=lambda a: "argument: %s" % actual["arguments"]) check_list_match(lambda a, e: matches(a["type"], e["type"]), obj["launchers"], expected["launchers"], check=check_launcher, diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_cross_emulator.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_cross_emulator.json index 9bd2d5d..bbd973b 100644 --- a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_cross_emulator.json +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_cross_emulator.json @@ -80,7 +80,6 @@ "install": null, "launchers" : [ { - "arguments" : null, "command": "^no-such-emulator(\\.exe)?$", "type" : "emulator" } |