diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-07-02 00:00:03 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-07-02 00:00:03 +0300 |
commit | c0057da133d212dd4e0efeab84e2a34f814c5c83 (patch) | |
tree | 732ea096e57a6e1e5d44da7c649189902bdc9149 /mesonbuild/interpreter.py | |
parent | cc775d64c9ca73e9a02710a84ac9f0a5fc01c593 (diff) | |
download | meson-c0057da133d212dd4e0efeab84e2a34f814c5c83.zip meson-c0057da133d212dd4e0efeab84e2a34f814c5c83.tar.gz meson-c0057da133d212dd4e0efeab84e2a34f814c5c83.tar.bz2 |
Can get arbitrary data from cross file properties.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 5281be5..df4cb0d 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -866,6 +866,7 @@ class MesonMain(InterpreterObject): 'install_dependency_manifest': self.install_dependency_manifest_method, 'project_version': self.project_version_method, 'project_name' : self.project_name_method, + 'get_cross_property': self.get_cross_property_method, }) def add_install_script_method(self, args, kwargs): @@ -965,6 +966,20 @@ class MesonMain(InterpreterObject): def project_name_method(self, args, kwargs): return self.interpreter.active_projectname + def get_cross_property_method(self, args, kwargs): + if len(args) < 1 or len(args) > 2: + raise InterpreterException('Must have one or two arguments.') + propname = args[0] + if not isinstance(propname, str): + raise InterpreterException('Property name must be string.') + try: + props = self.interpreter.environment.cross_info.get_properties() + return props[propname] + except Exception: + if len(args) == 2: + return args[1] + raise InterpreterException('Unknown cross property: %s.' % propname) + class Interpreter(): def __init__(self, build, backend, subproject='', subdir='', subproject_dir='subprojects'): |