| Index: tools/gn/value_extractors.h
|
| diff --git a/tools/gn/value_extractors.h b/tools/gn/value_extractors.h
|
| index 38c89ab4957633d3b35315e36a3e023c3d2ea08c..afda1d687883340ec68a995d628bed91896f7ff1 100644
|
| --- a/tools/gn/value_extractors.h
|
| +++ b/tools/gn/value_extractors.h
|
| @@ -8,30 +8,15 @@
|
| #include <string>
|
| #include <vector>
|
|
|
| -#include "tools/gn/target.h"
|
| -#include "tools/gn/value.h"
|
| +#include "tools/gn/label_ptr.h"
|
| +#include "tools/gn/unique_vector.h"
|
|
|
| class BuildSettings;
|
| class Err;
|
| class Label;
|
| class SourceDir;
|
| class SourceFile;
|
| -
|
| -// Sets the error and returns false on failure.
|
| -template<typename T, class Converter>
|
| -bool ListValueExtractor(const Value& value, std::vector<T>* dest,
|
| - Err* err,
|
| - const Converter& converter) {
|
| - if (!value.VerifyTypeIs(Value::LIST, err))
|
| - return false;
|
| - const std::vector<Value>& input_list = value.list_value();
|
| - dest->resize(input_list.size());
|
| - for (size_t i = 0; i < input_list.size(); i++) {
|
| - if (!converter(input_list[i], &(*dest)[i], err))
|
| - return false;
|
| - }
|
| - return true;
|
| -}
|
| +class Value;
|
|
|
| // On failure, returns false and sets the error.
|
| bool ExtractListOfStringValues(const Value& value,
|
| @@ -57,14 +42,23 @@ bool ExtractListOfRelativeDirs(const BuildSettings* build_settings,
|
| bool ExtractListOfLabels(const Value& value,
|
| const SourceDir& current_dir,
|
| const Label& current_toolchain,
|
| - LabelConfigVector* dest,
|
| - Err* err);
|
| -bool ExtractListOfLabels(const Value& value,
|
| - const SourceDir& current_dir,
|
| - const Label& current_toolchain,
|
| LabelTargetVector* dest,
|
| Err* err);
|
|
|
| +// Extracts the list of labels and their origins to the given vector. Only the
|
| +// labels are filled in, the ptr for each pair in the vector will be null. Sets
|
| +// an error and returns false if a label is maformed or there are duplicates.
|
| +bool ExtractListOfUniqueLabels(const Value& value,
|
| + const SourceDir& current_dir,
|
| + const Label& current_toolchain,
|
| + UniqueVector<LabelConfigPair>* dest,
|
| + Err* err);
|
| +bool ExtractListOfUniqueLabels(const Value& value,
|
| + const SourceDir& current_dir,
|
| + const Label& current_toolchain,
|
| + UniqueVector<LabelTargetPair>* dest,
|
| + Err* err);
|
| +
|
| bool ExtractRelativeFile(const BuildSettings* build_settings,
|
| const Value& value,
|
| const SourceDir& current_dir,
|
|
|