Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Side by Side Diff: tools/gn/command_help.cc

Issue 1820493002: Add more documentation for GN header checking (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <iostream> 6 #include <iostream>
7 7
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "tools/gn/args.h" 9 #include "tools/gn/args.h"
10 #include "tools/gn/commands.h" 10 #include "tools/gn/commands.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 PrintShortHelp(target.second.help_short); 59 PrintShortHelp(target.second.help_short);
60 60
61 OutputString("\nOther help topics:\n"); 61 OutputString("\nOther help topics:\n");
62 PrintShortHelp("all: Print all the help at once"); 62 PrintShortHelp("all: Print all the help at once");
63 PrintShortHelp("buildargs: How build arguments work."); 63 PrintShortHelp("buildargs: How build arguments work.");
64 PrintShortHelp("dotfile: Info about the toplevel .gn file."); 64 PrintShortHelp("dotfile: Info about the toplevel .gn file.");
65 PrintShortHelp("grammar: Formal grammar for GN build files."); 65 PrintShortHelp("grammar: Formal grammar for GN build files.");
66 PrintShortHelp( 66 PrintShortHelp(
67 "input_conversion: Processing input from exec_script and read_file."); 67 "input_conversion: Processing input from exec_script and read_file.");
68 PrintShortHelp("label_pattern: Matching more than one label."); 68 PrintShortHelp("label_pattern: Matching more than one label.");
69 PrintShortHelp("nogncheck: Annotating includes for checking.");
69 PrintShortHelp("runtime_deps: How runtime dependency computation works."); 70 PrintShortHelp("runtime_deps: How runtime dependency computation works.");
70 PrintShortHelp("source_expansion: Map sources to outputs for scripts."); 71 PrintShortHelp("source_expansion: Map sources to outputs for scripts.");
71 PrintShortHelp("switches: Show available command-line switches."); 72 PrintShortHelp("switches: Show available command-line switches.");
72 } 73 }
73 74
74 void PrintSwitchHelp() { 75 void PrintSwitchHelp() {
75 const base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess(); 76 const base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
76 bool use_markdown = cmdline->HasSwitch(switches::kMarkdown); 77 bool use_markdown = cmdline->HasSwitch(switches::kMarkdown);
77 78
78 OutputString("Available global switches\n", DECORATION_YELLOW); 79 OutputString("Available global switches\n", DECORATION_YELLOW);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 PrintLongHelp(v.second.help); 120 PrintLongHelp(v.second.help);
120 121
121 for (const auto& v: variables::GetTargetVariables()) 122 for (const auto& v: variables::GetTargetVariables())
122 PrintLongHelp(v.second.help); 123 PrintLongHelp(v.second.help);
123 124
124 PrintLongHelp(kBuildArgs_Help); 125 PrintLongHelp(kBuildArgs_Help);
125 PrintLongHelp(kDotfile_Help); 126 PrintLongHelp(kDotfile_Help);
126 PrintLongHelp(kGrammar_Help); 127 PrintLongHelp(kGrammar_Help);
127 PrintLongHelp(kInputConversion_Help); 128 PrintLongHelp(kInputConversion_Help);
128 PrintLongHelp(kLabelPattern_Help); 129 PrintLongHelp(kLabelPattern_Help);
130 PrintLongHelp(kNoGnCheck_Help);
129 PrintLongHelp(kRuntimeDeps_Help); 131 PrintLongHelp(kRuntimeDeps_Help);
130 PrintLongHelp(kSourceExpansion_Help); 132 PrintLongHelp(kSourceExpansion_Help);
131 PrintSwitchHelp(); 133 PrintSwitchHelp();
132 } 134 }
133 135
134 // Prints help on the given switch. There should be no leading hyphens. Returns 136 // Prints help on the given switch. There should be no leading hyphens. Returns
135 // true if the switch was found and help was printed. False means the switch is 137 // true if the switch was found and help was printed. False means the switch is
136 // unknown. 138 // unknown.
137 bool PrintHelpOnSwitch(const std::string& what) { 139 bool PrintHelpOnSwitch(const std::string& what) {
138 const switches::SwitchInfoMap& all = switches::GetSwitches(); 140 const switches::SwitchInfoMap& all = switches::GetSwitches();
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 // Random other topics. 226 // Random other topics.
225 std::map<std::string, void(*)()> random_topics; 227 std::map<std::string, void(*)()> random_topics;
226 random_topics["all"] = PrintAllHelp; 228 random_topics["all"] = PrintAllHelp;
227 random_topics["buildargs"] = []() { PrintLongHelp(kBuildArgs_Help); }; 229 random_topics["buildargs"] = []() { PrintLongHelp(kBuildArgs_Help); };
228 random_topics["dotfile"] = []() { PrintLongHelp(kDotfile_Help); }; 230 random_topics["dotfile"] = []() { PrintLongHelp(kDotfile_Help); };
229 random_topics["grammar"] = []() { PrintLongHelp(kGrammar_Help); }; 231 random_topics["grammar"] = []() { PrintLongHelp(kGrammar_Help); };
230 random_topics["input_conversion"] = []() { 232 random_topics["input_conversion"] = []() {
231 PrintLongHelp(kInputConversion_Help); 233 PrintLongHelp(kInputConversion_Help);
232 }; 234 };
233 random_topics["label_pattern"] = []() { PrintLongHelp(kLabelPattern_Help); }; 235 random_topics["label_pattern"] = []() { PrintLongHelp(kLabelPattern_Help); };
236 random_topics["nogncheck"] = []() { PrintLongHelp(kNoGnCheck_Help); };
234 random_topics["runtime_deps"] = []() { PrintLongHelp(kRuntimeDeps_Help); }; 237 random_topics["runtime_deps"] = []() { PrintLongHelp(kRuntimeDeps_Help); };
235 random_topics["source_expansion"] = []() { 238 random_topics["source_expansion"] = []() {
236 PrintLongHelp(kSourceExpansion_Help); 239 PrintLongHelp(kSourceExpansion_Help);
237 }; 240 };
238 random_topics["switches"] = PrintSwitchHelp; 241 random_topics["switches"] = PrintSwitchHelp;
239 auto found_random_topic = random_topics.find(what); 242 auto found_random_topic = random_topics.find(what);
240 if (found_random_topic != random_topics.end()) { 243 if (found_random_topic != random_topics.end()) {
241 found_random_topic->second(); 244 found_random_topic->second();
242 return 0; 245 return 0;
243 } 246 }
244 for (const auto& entry : random_topics) 247 for (const auto& entry : random_topics)
245 all_help_topics.push_back(entry.first); 248 all_help_topics.push_back(entry.first);
246 249
247 // No help on this. 250 // No help on this.
248 Err(Location(), "No help on \"" + what + "\".").PrintToStdout(); 251 Err(Location(), "No help on \"" + what + "\".").PrintToStdout();
249 base::StringPiece suggestion = SpellcheckString(what, all_help_topics); 252 base::StringPiece suggestion = SpellcheckString(what, all_help_topics);
250 if (suggestion.empty()) { 253 if (suggestion.empty()) {
251 OutputString("Run `gn help` for a list of available topics.\n", 254 OutputString("Run `gn help` for a list of available topics.\n",
252 DECORATION_NONE); 255 DECORATION_NONE);
253 } else { 256 } else {
254 OutputString("Did you mean `gn help " + suggestion.as_string() + "`?\n", 257 OutputString("Did you mean `gn help " + suggestion.as_string() + "`?\n",
255 DECORATION_NONE); 258 DECORATION_NONE);
256 } 259 }
257 return 1; 260 return 1;
258 } 261 }
259 262
260 } // namespace commands 263 } // namespace commands
OLDNEW
« no previous file with comments | « tools/gn/command_check.cc ('k') | tools/gn/commands.h » ('j') | tools/gn/variables.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698