From 4baaf93a0387f30cef93a39b5a6841218c42c308 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Thu, 22 Dec 2022 10:27:09 +0100 Subject: Add option --dump-export-targets ... dumping only the configured targets that are export targets. Those targets are of particular interest as those are the targets, as they are the high-level caching points and also often serve as interface between projects. --- src/buildtool/common/cli.hpp | 5 +++++ src/buildtool/main/main.cpp | 13 ++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/buildtool/common/cli.hpp b/src/buildtool/common/cli.hpp index 6592a02f..4650f749 100644 --- a/src/buildtool/common/cli.hpp +++ b/src/buildtool/common/cli.hpp @@ -77,6 +77,7 @@ struct DiagnosticArguments { std::optional dump_trees{std::nullopt}; std::optional dump_vars{std::nullopt}; std::optional dump_targets{std::nullopt}; + std::optional dump_export_targets{std::nullopt}; std::optional dump_targets_graph{std::nullopt}; std::optional dump_anonymous{std::nullopt}; std::optional dump_nodes{std::nullopt}; @@ -283,6 +284,10 @@ static inline auto SetupDiagnosticArguments( clargs->dump_targets, "Dump targets to file (use - for stdout).") ->type_name("PATH"); + app->add_option("--dump-export-targets", + clargs->dump_export_targets, + "Dump \"export\" targets to file (use - for stdout).") + ->type_name("PATH"); app->add_option("--dump-targets-graph", clargs->dump_targets_graph, "Dump the graph of the configured targets to file.") diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp index fbbef488..0c9f047a 100644 --- a/src/buildtool/main/main.cpp +++ b/src/buildtool/main/main.cpp @@ -787,7 +787,8 @@ void DumpTrees(std::string const& file_path, AnalysisResult const& result) { } void DumpTargets(std::string const& file_path, - std::vector const& target_ids) { + std::vector const& target_ids, + std::string const& target_qualifier = "") { auto repo_map = nlohmann::json::object(); auto conf_list = [&repo_map](Base::EntityName const& ref) -> nlohmann::json& { @@ -813,12 +814,14 @@ void DumpTargets(std::string const& file_path, }); auto const dump_string = IndentListsOnlyUntilDepth(repo_map, 2); if (file_path == "-") { - Logger::Log(LogLevel::Info, "List of analysed targets:"); + Logger::Log( + LogLevel::Info, "List of analysed {}targets:", target_qualifier); std::cout << dump_string << std::endl; } else { Logger::Log(LogLevel::Info, - "Dumping list of analysed targets to file '{}'.", + "Dumping list of analysed {}targets to file '{}'.", + target_qualifier, file_path); std::ofstream os(file_path); os << dump_string << std::endl; @@ -941,6 +944,10 @@ void DumpNodes(std::string const& file_path, AnalysisResult const& result) { if (clargs.dump_targets) { DumpTargets(*clargs.dump_targets, result_map.ConfiguredTargets()); } + if (clargs.dump_export_targets) { + DumpTargets( + *clargs.dump_export_targets, result_map.ExportTargets(), "export "); + } if (clargs.dump_targets_graph) { auto graph = result_map.ConfiguredTargetsGraph().dump(2); Logger::Log(LogLevel::Info, -- cgit v1.2.3