summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/buildtool/common/cli.hpp14
-rw-r--r--src/buildtool/main/main.cpp10
2 files changed, 14 insertions, 10 deletions
diff --git a/src/buildtool/common/cli.hpp b/src/buildtool/common/cli.hpp
index 51cf3ef3..6b6ad535 100644
--- a/src/buildtool/common/cli.hpp
+++ b/src/buildtool/common/cli.hpp
@@ -75,7 +75,7 @@ struct AnalysisArguments {
std::optional<std::filesystem::path> expression_root;
std::vector<std::filesystem::path> graph_file;
std::vector<std::filesystem::path> graph_file_plain;
- std::optional<std::filesystem::path> artifacts_to_build_file;
+ std::vector<std::filesystem::path> artifacts_to_build_files;
std::optional<std::filesystem::path> serve_errors_file;
std::optional<std::string> profile;
};
@@ -366,10 +366,14 @@ static inline auto SetupAnalysisArguments(
"File path for writing the action graph description to.")
->type_name("PATH")
->trigger_on_parse();
- app->add_option("--dump-artifacts-to-build",
- clargs->artifacts_to_build_file,
- "File path for writing the artifacts to build to.")
- ->type_name("PATH");
+ app->add_option_function<std::string>(
+ "--dump-artifacts-to-build",
+ [clargs](auto const& file_) {
+ clargs->artifacts_to_build_files.emplace_back(file_);
+ },
+ "File path for writing the artifacts to build to.")
+ ->type_name("PATH")
+ ->trigger_on_parse();
}
}
diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp
index c071b27c..10abfa1a 100644
--- a/src/buildtool/main/main.cpp
+++ b/src/buildtool/main/main.cpp
@@ -1200,11 +1200,11 @@ auto main(int argc, char* argv[]) -> int {
arguments.analysis.graph_file, &stats, &progress);
analyse_result->result_map.ToFile</*kIncludeOrigins=*/false>(
arguments.analysis.graph_file_plain, &stats, &progress);
- if (arguments.analysis.artifacts_to_build_file) {
- DumpArtifactsToBuild(
- artifacts_runfiles.first,
- artifacts_runfiles.second,
- *arguments.analysis.artifacts_to_build_file);
+ for (auto const& to_build_file :
+ arguments.analysis.artifacts_to_build_files) {
+ DumpArtifactsToBuild(artifacts_runfiles.first,
+ artifacts_runfiles.second,
+ to_build_file);
}
// Clean up in parallel
{