diff options
author | brettw <brettw@chromium.org> | 2016-01-26 10:11:28 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-26 18:13:16 +0000 |
commit | 81aa4e8f010454835da6caa14507bcee73578e83 (patch) | |
tree | b33c626c507bb57d663258ac9a177d10149ef4a7 /tools/gn/value_extractors.cc | |
parent | 24c4ddc037619b03e7712906ef3031ee4abcb030 (diff) | |
download | chromium_src-81aa4e8f010454835da6caa14507bcee73578e83.zip chromium_src-81aa4e8f010454835da6caa14507bcee73578e83.tar.gz chromium_src-81aa4e8f010454835da6caa14507bcee73578e83.tar.bz2 |
Add an assert_no_deps variable to GN.
This asserts that there is no dependency path to a given target.
BUG=
Review URL: https://codereview.chromium.org/1621053002
Cr-Commit-Position: refs/heads/master@{#371539}
Diffstat (limited to 'tools/gn/value_extractors.cc')
-rw-r--r-- | tools/gn/value_extractors.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/gn/value_extractors.cc b/tools/gn/value_extractors.cc index 23c5a272..ff009ce 100644 --- a/tools/gn/value_extractors.cc +++ b/tools/gn/value_extractors.cc @@ -144,6 +144,17 @@ template<typename T> struct LabelPtrResolver { const Label& current_toolchain; }; +struct LabelPatternResolver { + LabelPatternResolver(const SourceDir& current_dir_in) + : current_dir(current_dir_in) { + } + bool operator()(const Value& v, LabelPattern* out, Err* err) const { + *out = LabelPattern::GetPattern(current_dir, v, err); + return !err->has_error(); + } + const SourceDir& current_dir; +}; + } // namespace bool ExtractListOfStringValues(const Value& value, @@ -236,3 +247,11 @@ bool ExtractRelativeFile(const BuildSettings* build_settings, RelativeFileConverter converter(build_settings, current_dir); return converter(value, file, err); } + +bool ExtractListOfLabelPatterns(const Value& value, + const SourceDir& current_dir, + std::vector<LabelPattern>* patterns, + Err* err) { + return ListValueExtractor(value, patterns, err, + LabelPatternResolver(current_dir)); +} |