Index: tools/gn/builder.cc |
diff --git a/tools/gn/builder.cc b/tools/gn/builder.cc |
index bb3f834f6cb21970950f89cae1ae2821832e7556..16dab6eca1f1ddd395e32599a6ce4ac6586d3d77 100644 |
--- a/tools/gn/builder.cc |
+++ b/tools/gn/builder.cc |
@@ -7,6 +7,7 @@ |
#include <stddef.h> |
#include <utility> |
+#include "tools/gn/action_values.h" |
#include "tools/gn/config.h" |
#include "tools/gn/deps_iterator.h" |
#include "tools/gn/err.h" |
@@ -439,6 +440,7 @@ bool Builder::ResolveItem(BuilderRecord* record, Err* err) { |
!ResolveConfigs(&target->configs(), err) || |
!ResolveConfigs(&target->all_dependent_configs(), err) || |
!ResolveConfigs(&target->public_configs(), err) || |
+ !ResolveActionValues(&target->action_values(), err) || |
!ResolveToolchain(target, err)) |
return false; |
} else if (record->type() == BuilderRecord::ITEM_CONFIG) { |
@@ -519,6 +521,20 @@ bool Builder::ResolveToolchain(Target* target, Err* err) { |
return true; |
} |
+bool Builder::ResolveActionValues(ActionValues* action_values, Err* err) { |
+ if (action_values->pool().label.is_null()) |
+ return true; |
+ |
+ BuilderRecord* record = GetResolvedRecordOfType( |
+ action_values->pool().label, action_values->pool().origin, |
+ BuilderRecord::ITEM_POOL, err); |
+ if (!record) |
+ return false; |
+ action_values->set_pool(LabelPtrPair<Pool>(record->item()->AsPool())); |
+ |
+ return true; |
+} |
+ |
bool Builder::ResolvePools(Toolchain* toolchain, Err* err) { |
for (int i = Toolchain::TYPE_NONE + 1; i < Toolchain::TYPE_NUMTYPES; i++) { |
Toolchain::ToolType tool_type = static_cast<Toolchain::ToolType>(i); |