| 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 "tools/gn/args.h" | 5 #include "tools/gn/args.h" |
| 6 | 6 |
| 7 #include "tools/gn/variables.h" | 7 #include "tools/gn/variables.h" |
| 8 | 8 |
| 9 const char kBuildArgs_Help[] = | 9 const char kBuildArgs_Help[] = |
| 10 "Build Arguments Overview\n" | 10 "Build Arguments Overview\n" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 "\n" | 45 "\n" |
| 46 " Often, the root build config file will declare global arguments that\n" | 46 " Often, the root build config file will declare global arguments that\n" |
| 47 " will be passed to all buildfiles. Individual build files can also\n" | 47 " will be passed to all buildfiles. Individual build files can also\n" |
| 48 " specify arguments that apply only to those files. It is also usedful\n" | 48 " specify arguments that apply only to those files. It is also usedful\n" |
| 49 " to specify build args in an \"import\"-ed file if you want such\n" | 49 " to specify build args in an \"import\"-ed file if you want such\n" |
| 50 " arguments to apply to multiple buildfiles.\n"; | 50 " arguments to apply to multiple buildfiles.\n"; |
| 51 | 51 |
| 52 Args::Args() { | 52 Args::Args() { |
| 53 } | 53 } |
| 54 | 54 |
| 55 Args::Args(const Args& other) |
| 56 : overrides_(other.overrides_), |
| 57 all_overrides_(other.all_overrides_), |
| 58 declared_arguments_(other.declared_arguments_) { |
| 59 } |
| 60 |
| 55 Args::~Args() { | 61 Args::~Args() { |
| 56 } | 62 } |
| 57 | 63 |
| 64 void Args::AddArgOverride(const char* name, const Value& value) { |
| 65 overrides_[base::StringPiece(name)] = value; |
| 66 all_overrides_[base::StringPiece(name)] = value; |
| 67 } |
| 68 |
| 58 void Args::AddArgOverrides(const Scope::KeyValueMap& overrides) { | 69 void Args::AddArgOverrides(const Scope::KeyValueMap& overrides) { |
| 59 for (Scope::KeyValueMap::const_iterator i = overrides.begin(); | 70 for (Scope::KeyValueMap::const_iterator i = overrides.begin(); |
| 60 i != overrides.end(); ++i) { | 71 i != overrides.end(); ++i) { |
| 61 overrides_.insert(*i); | 72 overrides_[i->first] = i->second; |
| 62 all_overrides_.insert(*i); | 73 all_overrides_[i->first] = i->second; |
| 63 } | 74 } |
| 64 } | 75 } |
| 65 | 76 |
| 66 void Args::SetupRootScope(Scope* dest, | 77 void Args::SetupRootScope(Scope* dest, |
| 67 const Scope::KeyValueMap& toolchain_overrides) const { | 78 const Scope::KeyValueMap& toolchain_overrides) const { |
| 68 SetSystemVars(dest); | 79 SetSystemVars(dest); |
| 69 ApplyOverrides(overrides_, dest); | 80 ApplyOverrides(overrides_, dest); |
| 70 ApplyOverrides(toolchain_overrides, dest); | 81 ApplyOverrides(toolchain_overrides, dest); |
| 71 SaveOverrideRecord(toolchain_overrides); | 82 SaveOverrideRecord(toolchain_overrides); |
| 72 } | 83 } |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 i != values.end(); ++i) | 190 i != values.end(); ++i) |
| 180 scope->SetValue(i->first, i->second, i->second.origin()); | 191 scope->SetValue(i->first, i->second, i->second.origin()); |
| 181 } | 192 } |
| 182 | 193 |
| 183 void Args::SaveOverrideRecord(const Scope::KeyValueMap& values) const { | 194 void Args::SaveOverrideRecord(const Scope::KeyValueMap& values) const { |
| 184 base::AutoLock lock(lock_); | 195 base::AutoLock lock(lock_); |
| 185 for (Scope::KeyValueMap::const_iterator i = values.begin(); | 196 for (Scope::KeyValueMap::const_iterator i = values.begin(); |
| 186 i != values.end(); ++i) | 197 i != values.end(); ++i) |
| 187 all_overrides_[i->first] = i->second; | 198 all_overrides_[i->first] = i->second; |
| 188 } | 199 } |
| OLD | NEW |