From 2fa19d98f7e4024da9dc6c9bb8f0071f966c3ae7 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Fri, 14 Apr 2023 12:20:55 +0200 Subject: just-mr support -D option Make just-mr unconditionally support an option -D that collects a configuration overlay and forwards it to the invocation of a just subcommand that supports this option. This syntax-switching facility makes it easy to embedd dynamic parts of the configuration (like the head commit to be part of a version string) as those information can unconditionally be the first argument to just-mr. --- src/other_tools/just_mr/utils.hpp | 40 +++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) (limited to 'src/other_tools/just_mr/utils.hpp') diff --git a/src/other_tools/just_mr/utils.hpp b/src/other_tools/just_mr/utils.hpp index a7d43415..d992a895 100644 --- a/src/other_tools/just_mr/utils.hpp +++ b/src/other_tools/just_mr/utils.hpp @@ -49,18 +49,42 @@ struct JustSubCmdFlags { bool config; bool build_root; bool launch; + bool defines; }; // ordered, so that we have replicability std::map const kKnownJustSubcommands{ - {"version", {false /*config*/, false /*build_root*/, false /*launch*/}}, - {"describe", {true /*config*/, false /*build_root*/, false /*launch*/}}, - {"analyse", {true /*config*/, true /*build_root*/, false /*launch*/}}, - {"build", {true /*config*/, true /*build_root*/, true /*launch*/}}, - {"install", {true /*config*/, true /*build_root*/, true /*launch*/}}, - {"rebuild", {true /*config*/, true /*build_root*/, true /*launch*/}}, - {"install-cas", {false /*config*/, true /*build_root*/, false /*launch*/}}, - {"gc", {false /*config*/, true /*build_root*/, false /*launch*/}}}; + {"version", + {false /*config*/, + false /*build_root*/, + false /*launch*/, + false /*defines*/}}, + {"describe", + {true /*config*/, + false /*build_root*/, + false /*launch*/, + true /*defines*/}}, + {"analyse", + {true /*config*/, + true /*build_root*/, + false /*launch*/, + true /*defines*/}}, + {"build", + {true /*config*/, true /*build_root*/, true /*launch*/, true /*defines*/}}, + {"install", + {true /*config*/, true /*build_root*/, true /*launch*/, true /*defines*/}}, + {"rebuild", + {true /*config*/, true /*build_root*/, true /*launch*/, true /*defines*/}}, + {"install-cas", + {false /*config*/, + true /*build_root*/, + false /*launch*/, + false /*defines*/}}, + {"gc", + {false /*config*/, + true /*build_root*/, + false /*launch*/, + false /*defines*/}}}; nlohmann::json const kDefaultConfigLocations = nlohmann::json::array( {{{"root", "workspace"}, {"path", "repos.json"}}, -- cgit v1.2.3