| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <algorithm> | 5 #include <algorithm> |
| 6 #include <set> | 6 #include <set> |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "tools/gn/commands.h" | 10 #include "tools/gn/commands.h" |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 OutputString("\n" + header + ":\n"); | 241 OutputString("\n" + header + ":\n"); |
| 242 | 242 |
| 243 std::string indent = indent_extra ? " " : " "; | 243 std::string indent = indent_extra ? " " : " "; |
| 244 | 244 |
| 245 Target::FileList sorted = files; | 245 Target::FileList sorted = files; |
| 246 std::sort(sorted.begin(), sorted.end()); | 246 std::sort(sorted.begin(), sorted.end()); |
| 247 for (size_t i = 0; i < sorted.size(); i++) | 247 for (size_t i = 0; i < sorted.size(); i++) |
| 248 OutputString(indent + sorted[i].value() + "\n"); | 248 OutputString(indent + sorted[i].value() + "\n"); |
| 249 } | 249 } |
| 250 | 250 |
| 251 // This sorts the list. |
| 252 void PrintStringList(const std::vector<std::string>& strings, |
| 253 const std::string& header, |
| 254 bool indent_extra, |
| 255 bool display_header) { |
| 256 if (strings.empty()) |
| 257 return; |
| 258 |
| 259 if (display_header) |
| 260 OutputString("\n" + header + ":\n"); |
| 261 |
| 262 std::string indent = indent_extra ? " " : " "; |
| 263 |
| 264 std::vector<std::string> sorted = strings; |
| 265 std::sort(sorted.begin(), sorted.end()); |
| 266 for (size_t i = 0; i < sorted.size(); i++) |
| 267 OutputString(indent + sorted[i] + "\n"); |
| 268 } |
| 269 |
| 251 void PrintSources(const Target* target, bool display_header) { | 270 void PrintSources(const Target* target, bool display_header) { |
| 252 PrintFileList(target->sources(), "sources", false, display_header); | 271 PrintFileList(target->sources(), "sources", false, display_header); |
| 253 } | 272 } |
| 254 | 273 |
| 255 void PrintInputs(const Target* target, bool display_header) { | 274 void PrintInputs(const Target* target, bool display_header) { |
| 256 PrintFileList(target->inputs(), "inputs", false, display_header); | 275 PrintFileList(target->inputs(), "inputs", false, display_header); |
| 257 } | 276 } |
| 258 | 277 |
| 259 void PrintOutputs(const Target* target, bool display_header) { | 278 void PrintOutputs(const Target* target, bool display_header) { |
| 260 if (target->output_type() == Target::ACTION) { | 279 if (target->output_type() == Target::ACTION) { |
| 261 // Just display the outputs directly. | 280 // Just display the outputs directly. |
| 262 PrintFileList(target->action_values().outputs(), "outputs", false, | 281 PrintStringList(target->action_values().outputs(), "outputs", false, |
| 263 display_header); | 282 display_header); |
| 264 } else if (target->output_type() == Target::ACTION_FOREACH) { | 283 } else if (target->output_type() == Target::ACTION_FOREACH || |
| 284 target->output_type() == Target::COPY_FILES) { |
| 265 // Display both the output pattern and resolved list. | 285 // Display both the output pattern and resolved list. |
| 266 if (display_header) | 286 if (display_header) |
| 267 OutputString("\noutputs:\n"); | 287 OutputString("\noutputs:\n"); |
| 268 | 288 |
| 269 // Display the pattern. | 289 // Display the pattern. |
| 270 OutputString(" Output pattern:\n"); | 290 OutputString(" Output pattern:\n"); |
| 271 PrintFileList(target->action_values().outputs(), "", true, false); | 291 PrintStringList(target->action_values().outputs(), "", true, false); |
| 272 | 292 |
| 273 // Now display what that resolves to given the sources. | 293 // Now display what that resolves to given the sources. |
| 274 OutputString("\n Resolved output file list:\n"); | 294 OutputString("\n Resolved output file list:\n"); |
| 275 | 295 |
| 276 std::vector<std::string> output_strings; | 296 std::vector<std::string> output_strings; |
| 277 FileTemplate file_template = FileTemplate::GetForTargetOutputs(target); | 297 FileTemplate file_template = FileTemplate::GetForTargetOutputs(target); |
| 278 for (size_t i = 0; i < target->sources().size(); i++) | 298 for (size_t i = 0; i < target->sources().size(); i++) |
| 279 file_template.Apply(target->sources()[i], &output_strings); | 299 file_template.Apply(target->sources()[i], &output_strings); |
| 280 | 300 PrintStringList(output_strings, "", true, false); |
| 281 std::sort(output_strings.begin(), output_strings.end()); | |
| 282 for (size_t i = 0; i < output_strings.size(); i++) { | |
| 283 OutputString(" " + output_strings[i] + "\n"); | |
| 284 } | |
| 285 } | 301 } |
| 286 } | 302 } |
| 287 | 303 |
| 288 void PrintScript(const Target* target, bool display_header) { | 304 void PrintScript(const Target* target, bool display_header) { |
| 289 if (display_header) | 305 if (display_header) |
| 290 OutputString("\nscript:\n"); | 306 OutputString("\nscript:\n"); |
| 291 OutputString(" " + target->action_values().script().value() + "\n"); | 307 OutputString(" " + target->action_values().script().value() + "\n"); |
| 292 } | 308 } |
| 293 | 309 |
| 294 void PrintArgs(const Target* target, bool display_header) { | 310 void PrintArgs(const Target* target, bool display_header) { |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 // so always display them, even for groups and such. | 609 // so always display them, even for groups and such. |
| 594 PrintLibs(target, true); | 610 PrintLibs(target, true); |
| 595 PrintLibDirs(target, true); | 611 PrintLibDirs(target, true); |
| 596 | 612 |
| 597 PrintDeps(target, true); | 613 PrintDeps(target, true); |
| 598 | 614 |
| 599 return 0; | 615 return 0; |
| 600 } | 616 } |
| 601 | 617 |
| 602 } // namespace commands | 618 } // namespace commands |
| OLD | NEW |