summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2024-03-15 10:36:31 +0100
committerKlaus Aehlig <klaus.aehlig@huawei.com>2024-03-20 14:36:35 +0100
commit027d8d010948c92abc67fd6410f5a88944973392 (patch)
tree30c95a948c159fcdfc48667f22a1bb3a8e10a322 /src
parent5ee4bc12a33f235b68732dee715de8f754620eda (diff)
downloadjustbuild-027d8d010948c92abc67fd6410f5a88944973392.tar.gz
Add local launcher to just-serve config
As just serve can simultaneously act as remote-execution endpoint, it has to accept in its configuration all the necessary information, in particular, the local launcher. Add it.
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/main/serve.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/buildtool/main/serve.cpp b/src/buildtool/main/serve.cpp
index e2b6635e..cebbd247 100644
--- a/src/buildtool/main/serve.cpp
+++ b/src/buildtool/main/serve.cpp
@@ -524,6 +524,35 @@ void ReadJustServeConfig(gsl::not_null<CommandLineArguments*> const& clargs) {
}
clargs->tc.target_cache_write_strategy = *s_value;
}
+
+ auto launcher = build_args->Get("local launcher", Expression::none_t{});
+ if (launcher.IsNotNull()) {
+ if (not launcher->IsList()) {
+ Logger::Log(
+ LogLevel::Error,
+ "In serve service config file {}:\nValue for build key "
+ "\"local launcher\" has to be a list, but found {}",
+ clargs->serve.config.string(),
+ launcher->ToString());
+ std::exit(kExitFailure);
+ }
+ std::vector<std::string> launcher_list{};
+ for (auto const& entry : launcher->List()) {
+ if (not entry->IsString()) {
+ Logger::Log(LogLevel::Error,
+ "In serve service config file {}:\nValue for "
+ "build key \"local launcher\" has to be a list "
+ "of string, but found {} with entry {}",
+ clargs->serve.config.string(),
+ launcher->ToString(),
+ entry->ToString());
+
+ std::exit(kExitFailure);
+ }
+ launcher_list.emplace_back(entry->String());
+ }
+ clargs->build.local_launcher = launcher_list;
+ }
}
}