diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2015-10-16 00:03:51 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2015-10-16 00:03:51 +0300 |
commit | e4ff4b7c8c9326c8c7b1b5618dcbf54ee9ae24b8 (patch) | |
tree | 25bcd27e7245a33a563a0c3686881e546f4ce779 /interpreter.py | |
parent | 172fa2f8ddac5a53ea6fa6632e0cfaeb53344b64 (diff) | |
download | meson-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.py | 9 |
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: |