diff options
author | Haakon Sporsheim <haakon.sporsheim@gmail.com> | 2017-03-09 14:25:24 +0100 |
---|---|---|
committer | Haakon Sporsheim <haakon.sporsheim@gmail.com> | 2017-03-09 14:31:38 +0100 |
commit | 52f23f8c34bd9f6eacd31e8dff70066ca2aeb4e1 (patch) | |
tree | 102e38a99f6a934f91df8c28a125f1fc8b439e29 /mesonbuild/interpreter.py | |
parent | 1713aef364560c9de922991716880e4db32f88a5 (diff) | |
download | meson-52f23f8c34bd9f6eacd31e8dff70066ca2aeb4e1.zip meson-52f23f8c34bd9f6eacd31e8dff70066ca2aeb4e1.tar.gz meson-52f23f8c34bd9f6eacd31e8dff70066ca2aeb4e1.tar.bz2 |
compiler: Add compute_int functionality.
Fixes #435
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 07b5c40..dca7934 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -631,6 +631,7 @@ class CompilerHolder(InterpreterObject): self.methods.update({'compiles': self.compiles_method, 'links': self.links_method, 'get_id': self.get_id_method, + 'compute_int': self.compute_int_method, 'sizeof': self.sizeof_method, 'has_header': self.has_header_method, 'has_header_symbol': self.has_header_symbol_method, @@ -822,6 +823,20 @@ class CompilerHolder(InterpreterObject): mlog.log('Checking for type "', mlog.bold(typename), '": ', hadtxt, sep='') return had + def compute_int_method(self, args, kwargs): + if len(args) != 1: + raise InterpreterException('Compute_int takes exactly one argument.') + check_stringlist(args) + fragment = args[0] + prefix = kwargs.get('prefix', '') + if not isinstance(prefix, str): + raise InterpreterException('Prefix argument of compute_int must be a string.') + extra_args = self.determine_args(kwargs) + deps = self.determine_dependencies(kwargs) + res = self.compiler.compute_int(fragment, prefix, self.environment, extra_args, deps) + mlog.log('Computing int of "%s": %d' % (fragment, res)) + return res + def sizeof_method(self, args, kwargs): if len(args) != 1: raise InterpreterException('Sizeof takes exactly one argument.') |