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

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

Issue 2936923002: Add not_needed function (Closed)
Patch Set: Rename to not_needed Created 3 years, 6 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 | « no previous file | tools/gn/docs/reference.md » ('j') | tools/gn/functions.cc » ('J')
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 "tools/gn/args.h" 5 #include "tools/gn/args.h"
6 6
7 #include "base/sys_info.h" 7 #include "base/sys_info.h"
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 #include "tools/gn/scheduler.h"
9 #include "tools/gn/string_utils.h" 10 #include "tools/gn/string_utils.h"
10 #include "tools/gn/variables.h" 11 #include "tools/gn/variables.h"
11 12
12 const char kBuildArgs_Help[] = 13 const char kBuildArgs_Help[] =
13 R"(Build Arguments Overview 14 R"(Build Arguments Overview
14 15
15 Build arguments are variables passed in from outside of the build that build 16 Build arguments are variables passed in from outside of the build that build
16 files can query to determine how the build works. 17 files can query to determine how the build works.
17 18
18 How build arguments are set 19 How build arguments are set
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 // on some other condition without dereferencing the value first. 204 // on some other condition without dereferencing the value first.
204 205
205 // Check whether this argument has been overridden on the toolchain level 206 // Check whether this argument has been overridden on the toolchain level
206 // and use the override instead. 207 // and use the override instead.
207 Scope::KeyValueMap::const_iterator toolchain_override = 208 Scope::KeyValueMap::const_iterator toolchain_override =
208 toolchain_overrides.find(arg.first); 209 toolchain_overrides.find(arg.first);
209 if (toolchain_override != toolchain_overrides.end()) { 210 if (toolchain_override != toolchain_overrides.end()) {
210 scope_to_set->SetValue(toolchain_override->first, 211 scope_to_set->SetValue(toolchain_override->first,
211 toolchain_override->second, 212 toolchain_override->second,
212 toolchain_override->second.origin()); 213 toolchain_override->second.origin());
213 scope_to_set->MarkUsed(arg.first); 214 scope_to_set->MarkUsed(arg.first, err);
214 continue; 215 continue;
215 } 216 }
216 217
217 // Check whether this argument has been overridden and use the override 218 // Check whether this argument has been overridden and use the override
218 // instead. 219 // instead.
219 Scope::KeyValueMap::const_iterator override = overrides_.find(arg.first); 220 Scope::KeyValueMap::const_iterator override = overrides_.find(arg.first);
220 if (override != overrides_.end()) { 221 if (override != overrides_.end()) {
221 scope_to_set->SetValue(override->first, override->second, 222 scope_to_set->SetValue(override->first, override->second,
222 override->second.origin()); 223 override->second.origin());
223 scope_to_set->MarkUsed(override->first); 224 scope_to_set->MarkUsed(override->first, err);
224 continue; 225 continue;
225 } 226 }
226 227
227 scope_to_set->SetValue(arg.first, arg.second, arg.second.origin()); 228 scope_to_set->SetValue(arg.first, arg.second, arg.second.origin());
228 scope_to_set->MarkUsed(arg.first); 229 scope_to_set->MarkUsed(arg.first, err);
229 } 230 }
230 231
231 return true; 232 return true;
232 } 233 }
233 234
234 bool Args::VerifyAllOverridesUsed(Err* err) const { 235 bool Args::VerifyAllOverridesUsed(Err* err) const {
235 base::AutoLock lock(lock_); 236 base::AutoLock lock(lock_);
236 Scope::KeyValueMap unused_overrides(all_overrides_); 237 Scope::KeyValueMap unused_overrides(all_overrides_);
237 for (const auto& map_pair : declared_arguments_per_toolchain_) 238 for (const auto& map_pair : declared_arguments_per_toolchain_)
238 RemoveDeclaredOverrides(map_pair.second, &unused_overrides); 239 RemoveDeclaredOverrides(map_pair.second, &unused_overrides);
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 DeclaredArgumentsForToolchainLocked(dest)); 363 DeclaredArgumentsForToolchainLocked(dest));
363 declared_arguments[variables::kHostOs] = os_val; 364 declared_arguments[variables::kHostOs] = os_val;
364 declared_arguments[variables::kCurrentOs] = empty_string; 365 declared_arguments[variables::kCurrentOs] = empty_string;
365 declared_arguments[variables::kTargetOs] = empty_string; 366 declared_arguments[variables::kTargetOs] = empty_string;
366 declared_arguments[variables::kHostCpu] = arch_val; 367 declared_arguments[variables::kHostCpu] = arch_val;
367 declared_arguments[variables::kCurrentCpu] = empty_string; 368 declared_arguments[variables::kCurrentCpu] = empty_string;
368 declared_arguments[variables::kTargetCpu] = empty_string; 369 declared_arguments[variables::kTargetCpu] = empty_string;
369 370
370 // Mark these variables used so the build config file can override them 371 // Mark these variables used so the build config file can override them
371 // without geting a warning about overwriting an unused variable. 372 // without geting a warning about overwriting an unused variable.
372 dest->MarkUsed(variables::kHostCpu); 373 Err err;
373 dest->MarkUsed(variables::kCurrentCpu); 374 dest->MarkUsed(variables::kHostCpu, &err);
374 dest->MarkUsed(variables::kTargetCpu); 375 dest->MarkUsed(variables::kCurrentCpu, &err);
375 dest->MarkUsed(variables::kHostOs); 376 dest->MarkUsed(variables::kTargetCpu, &err);
376 dest->MarkUsed(variables::kCurrentOs); 377 dest->MarkUsed(variables::kHostOs, &err);
377 dest->MarkUsed(variables::kTargetOs); 378 dest->MarkUsed(variables::kCurrentOs, &err);
379 dest->MarkUsed(variables::kTargetOs, &err);
380 if (err.has_error())
381 g_scheduler->FailWithError(err);
378 } 382 }
379 383
380 void Args::ApplyOverridesLocked(const Scope::KeyValueMap& values, 384 void Args::ApplyOverridesLocked(const Scope::KeyValueMap& values,
381 Scope* scope) const { 385 Scope* scope) const {
382 lock_.AssertAcquired(); 386 lock_.AssertAcquired();
383 387
384 const Scope::KeyValueMap& declared_arguments( 388 const Scope::KeyValueMap& declared_arguments(
385 DeclaredArgumentsForToolchainLocked(scope)); 389 DeclaredArgumentsForToolchainLocked(scope));
386 390
387 // Only set a value if it has been declared. 391 // Only set a value if it has been declared.
(...skipping 18 matching lines...) Expand all
406 Scope* scope) const { 410 Scope* scope) const {
407 lock_.AssertAcquired(); 411 lock_.AssertAcquired();
408 return declared_arguments_per_toolchain_[scope->settings()]; 412 return declared_arguments_per_toolchain_[scope->settings()];
409 } 413 }
410 414
411 Scope::KeyValueMap& Args::OverridesForToolchainLocked( 415 Scope::KeyValueMap& Args::OverridesForToolchainLocked(
412 Scope* scope) const { 416 Scope* scope) const {
413 lock_.AssertAcquired(); 417 lock_.AssertAcquired();
414 return toolchain_overrides_[scope->settings()]; 418 return toolchain_overrides_[scope->settings()];
415 } 419 }
OLDNEW
« no previous file with comments | « no previous file | tools/gn/docs/reference.md » ('j') | tools/gn/functions.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698