summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2019-04-18 12:19:19 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2019-04-18 12:25:53 +0530
commite75b67e2871e54bded6cb5191408e9200514c8a7 (patch)
tree440ed5b3c4fd4e90c173077643ef55f8cc4f5b68 /mesonbuild/interpreter.py
parent2942467148749e84868a79dd47dc4d31d4c75789 (diff)
downloadmeson-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.py13
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))