diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2019-04-18 12:19:19 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2019-04-18 12:25:53 +0530 |
commit | e75b67e2871e54bded6cb5191408e9200514c8a7 (patch) | |
tree | 440ed5b3c4fd4e90c173077643ef55f8cc4f5b68 /mesonbuild/interpreter.py | |
parent | 2942467148749e84868a79dd47dc4d31d4c75789 (diff) | |
download | meson-nirbheek/check-meson-version-first.tar.gz |
interpreter: Check the meson version before parsing optionsnirbheek/check-meson-version-first
Also add a test for it so we don't regress this in the future.
Closes https://github.com/mesonbuild/meson/issues/5281
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 993ebbd1c..8f3393588 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2575,6 +2575,12 @@ external dependencies (including libraries) must go to "dependencies".''') if ':' in proj_name: raise InvalidArguments("Project name {!r} must not contain ':'".format(proj_name)) + if 'meson_version' in kwargs: + cv = coredata.version + pv = kwargs['meson_version'] + if not mesonlib.version_compare(cv, pv): + raise InterpreterException('Meson version is %s but project requires %s' % (cv, pv)) + if os.path.exists(self.option_file): oi = optinterpreter.OptionInterpreter(self.subproject) oi.process(self.option_file) @@ -2621,11 +2627,8 @@ external dependencies (including libraries) must go to "dependencies".''') mesonlib.project_meson_versions[self.subproject] = '' if 'meson_version' in kwargs: - cv = coredata.version - pv = kwargs['meson_version'] - mesonlib.project_meson_versions[self.subproject] = pv - if not mesonlib.version_compare(cv, pv): - raise InterpreterException('Meson version is %s but project requires %s.' % (cv, pv)) + mesonlib.project_meson_versions[self.subproject] = kwargs['meson_version'] + self.build.projects[self.subproject] = proj_name mlog.log('Project name:', mlog.bold(proj_name)) mlog.log('Project version:', mlog.bold(self.project_version)) |