aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-10-16 00:03:51 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2015-10-16 00:03:51 +0300
commite4ff4b7c8c9326c8c7b1b5618dcbf54ee9ae24b8 (patch)
tree25bcd27e7245a33a563a0c3686881e546f4ce779 /interpreter.py
parent172fa2f8ddac5a53ea6fa6632e0cfaeb53344b64 (diff)
downloadmeson-e4ff4b7c8c9326c8c7b1b5618dcbf54ee9ae24b8.zip
meson-e4ff4b7c8c9326c8c7b1b5618dcbf54ee9ae24b8.tar.gz
meson-e4ff4b7c8c9326c8c7b1b5618dcbf54ee9ae24b8.tar.bz2
Can specify version requirements to subprojects.
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/interpreter.py b/interpreter.py
index 7e67711..9e494f0 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -1196,7 +1196,6 @@ class Interpreter():
self.build.pkgconfig_gens.append(p)
@stringArgs
- @noKwargs
def func_subproject(self, nodes, args, kwargs):
if len(args) != 1:
raise InterpreterException('Subproject takes exactly one argument')
@@ -1225,6 +1224,11 @@ class Interpreter():
subi.subproject_stack = self.subproject_stack + [dirname]
current_active = self.active_projectname
subi.run()
+ if 'version' in kwargs:
+ pv = subi.project_version
+ wanted = kwargs['version']
+ if not mesonlib.version_compare(pv, wanted):
+ raise InterpreterException('Subproject %s version is %s but %s required.' % (dirname, pv, wanted))
self.active_projectname = current_active
mlog.log('\nSubproject', mlog.bold(dirname), 'finished.')
self.build.subprojects[dirname] = True
@@ -1268,7 +1272,8 @@ class Interpreter():
if not self.is_subproject():
self.build.project_name = args[0]
self.active_projectname = args[0]
- self.build.dep_manifest[args[0]] = kwargs.get('version', 'undefined')
+ self.project_version = kwargs.get('version', 'undefined')
+ self.build.dep_manifest[args[0]] = self.project_version
if self.subproject in self.build.projects:
raise InvalidCode('Second call to project().')
if not self.is_subproject() and 'subproject_dir' in kwargs: