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

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

Issue 610293003: Replace more for loops in GN (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review Created 6 years, 2 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
« no previous file with comments | « tools/gn/builder.cc ('k') | tools/gn/command_desc.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stdio.h> 5 #include <stdio.h>
6 #include <stdlib.h> 6 #include <stdlib.h>
7 7
8 #include <map> 8 #include <map>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 Scope::KeyValueMap build_args; 121 Scope::KeyValueMap build_args;
122 setup->build_settings().build_args().MergeDeclaredArguments(&build_args); 122 setup->build_settings().build_args().MergeDeclaredArguments(&build_args);
123 123
124 // Find all of the arguments we care about. Use a regular map so they're 124 // Find all of the arguments we care about. Use a regular map so they're
125 // sorted nicely when we write them out. 125 // sorted nicely when we write them out.
126 std::map<base::StringPiece, Value> sorted_args; 126 std::map<base::StringPiece, Value> sorted_args;
127 std::string list_value = 127 std::string list_value =
128 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(kSwitchList); 128 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(kSwitchList);
129 if (list_value.empty()) { 129 if (list_value.empty()) {
130 // List all values. 130 // List all values.
131 for (Scope::KeyValueMap::const_iterator i = build_args.begin(); 131 for (const auto& arg : build_args)
132 i != build_args.end(); ++i) 132 sorted_args.insert(arg);
133 sorted_args.insert(*i);
134 } else { 133 } else {
135 // List just the one specified as the parameter to --list. 134 // List just the one specified as the parameter to --list.
136 Scope::KeyValueMap::const_iterator found_arg = build_args.find(list_value); 135 Scope::KeyValueMap::const_iterator found_arg = build_args.find(list_value);
137 if (found_arg == build_args.end()) { 136 if (found_arg == build_args.end()) {
138 Err(Location(), "Unknown build argument.", 137 Err(Location(), "Unknown build argument.",
139 "You asked for \"" + list_value + "\" which I didn't find in any " 138 "You asked for \"" + list_value + "\" which I didn't find in any "
140 "build file\nassociated with this build.").PrintToStdout(); 139 "build file\nassociated with this build.").PrintToStdout();
141 return 1; 140 return 1;
142 } 141 }
143 sorted_args.insert(*found_arg); 142 sorted_args.insert(*found_arg);
144 } 143 }
145 144
146 if (base::CommandLine::ForCurrentProcess()->HasSwitch(kSwitchShort)) { 145 if (base::CommandLine::ForCurrentProcess()->HasSwitch(kSwitchShort)) {
147 // Short key=value output. 146 // Short key=value output.
148 for (std::map<base::StringPiece, Value>::iterator i = sorted_args.begin(); 147 for (const auto& arg : sorted_args) {
149 i != sorted_args.end(); ++i) { 148 OutputString(arg.first.as_string());
150 OutputString(i->first.as_string());
151 OutputString(" = "); 149 OutputString(" = ");
152 OutputString(i->second.ToString(true)); 150 OutputString(arg.second.ToString(true));
153 OutputString("\n"); 151 OutputString("\n");
154 } 152 }
155 return 0; 153 return 0;
156 } 154 }
157 155
158 // Long output. 156 // Long output.
159 for (std::map<base::StringPiece, Value>::iterator i = sorted_args.begin(); 157 for (const auto& arg : sorted_args) {
160 i != sorted_args.end(); ++i) { 158 PrintArgHelp(arg.first, arg.second);
161 PrintArgHelp(i->first, i->second);
162 OutputString("\n"); 159 OutputString("\n");
163 } 160 }
164 161
165 return 0; 162 return 0;
166 } 163 }
167 164
168 #if defined(OS_WIN) 165 #if defined(OS_WIN)
169 166
170 bool RunEditor(const base::FilePath& file_to_edit) { 167 bool RunEditor(const base::FilePath& file_to_edit) {
171 SHELLEXECUTEINFO info; 168 SHELLEXECUTEINFO info;
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 "Or see \"gn help args\" for more variants.").PrintToStdout(); 335 "Or see \"gn help args\" for more variants.").PrintToStdout();
339 return 1; 336 return 1;
340 } 337 }
341 338
342 if (base::CommandLine::ForCurrentProcess()->HasSwitch(kSwitchList)) 339 if (base::CommandLine::ForCurrentProcess()->HasSwitch(kSwitchList))
343 return ListArgs(args[0]); 340 return ListArgs(args[0]);
344 return EditArgsFile(args[0]); 341 return EditArgsFile(args[0]);
345 } 342 }
346 343
347 } // namespace commands 344 } // namespace commands
OLDNEW
« no previous file with comments | « tools/gn/builder.cc ('k') | tools/gn/command_desc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698