| Index: tools/gn/functions.cc
|
| diff --git a/tools/gn/functions.cc b/tools/gn/functions.cc
|
| index 71d05aa04e2066ebf0706b4259b520fec4b80be0..86043f0a73ab930c5c00fd28832e434b7a208331 100644
|
| --- a/tools/gn/functions.cc
|
| +++ b/tools/gn/functions.cc
|
| @@ -19,6 +19,8 @@
|
| #include "tools/gn/template.h"
|
| #include "tools/gn/token.h"
|
| #include "tools/gn/value.h"
|
| +#include "tools/gn/value_extractors.h"
|
| +#include "tools/gn/variables.h"
|
|
|
| namespace {
|
|
|
| @@ -299,13 +301,23 @@ Value RunConfig(const FunctionCallNode* function,
|
| if (!Visibility::FillItemVisibility(config.get(), scope, err))
|
| return Value();
|
|
|
| - // Fill it.
|
| + // Fill the flags and such.
|
| const SourceDir& input_dir = scope->GetSourceDir();
|
| - ConfigValuesGenerator gen(&config->config_values(), scope, input_dir, err);
|
| + ConfigValuesGenerator gen(&config->own_values(), scope, input_dir, err);
|
| gen.Run();
|
| if (err->has_error())
|
| return Value();
|
|
|
| + // Read sub-configs.
|
| + const Value* configs_value = scope->GetValue(variables::kConfigs, true);
|
| + if (configs_value) {
|
| + ExtractListOfUniqueLabels(*configs_value, scope->GetSourceDir(),
|
| + ToolchainLabelForScope(scope),
|
| + &config->configs(), err);
|
| + }
|
| + if (err->has_error())
|
| + return Value();
|
| +
|
| // Save the generated item.
|
| Scope::ItemVector* collector = scope->GetItemCollector();
|
| if (!collector) {
|
|
|