diff options
-rw-r--r-- | src/buildtool/common/cli.hpp | 14 | ||||
-rw-r--r-- | src/buildtool/main/main.cpp | 10 |
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 { |