diff options
author | Evan Martin <martine@danga.com> | 2012-10-30 16:40:59 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2013-02-16 23:15:20 (GMT) |
commit | 10f3e17b6dc7718ab00552300871bbfe49854c8b (patch) | |
tree | 94d4e3bfe8bf9d5daf5292b0d79d059789d7e1fc /src/manifest_parser.cc | |
parent | 27f7528ebdae1586501fb083f8d5d3be711bb367 (diff) | |
download | Ninja-10f3e17b6dc7718ab00552300871bbfe49854c8b.zip Ninja-10f3e17b6dc7718ab00552300871bbfe49854c8b.tar.gz Ninja-10f3e17b6dc7718ab00552300871bbfe49854c8b.tar.bz2 |
add syntax for checking versions
Diffstat (limited to 'src/manifest_parser.cc')
-rw-r--r-- | src/manifest_parser.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/manifest_parser.cc b/src/manifest_parser.cc index 9d17932..14fca73 100644 --- a/src/manifest_parser.cc +++ b/src/manifest_parser.cc @@ -23,6 +23,7 @@ #include "metrics.h" #include "state.h" #include "util.h" +#include "version.h" ManifestParser::ManifestParser(State* state, FileReader* file_reader) : state_(state), file_reader_(file_reader) { @@ -66,10 +67,15 @@ bool ManifestParser::Parse(const string& filename, const string& input, case Lexer::IDENT: { lexer_.UnreadToken(); string name; - EvalString value; - if (!ParseLet(&name, &value, err)) + EvalString let_value; + if (!ParseLet(&name, &let_value, err)) return false; - env_->AddBinding(name, value.Evaluate(env_)); + string value = let_value.Evaluate(env_); + // Check ninja_required_version immediately so we can exit + // before encountering any syntactic surprises. + if (name == "ninja_required_version") + CheckNinjaVersion(value); + env_->AddBinding(name, value); break; } case Lexer::INCLUDE: |