diff --git a/compilers.py b/compilers.py index ee5cc1013..78da48674 100644 --- a/compilers.py +++ b/compilers.py @@ -156,6 +156,9 @@ class Compiler(): def compiles(self, code): raise EnvironmentException('Language %s does not support compile checks.' % self.language) + def links(self, code): + raise EnvironmentException('Language %s does not support link checks.' % self.language) + def run(self, code): raise EnvironmentException('Language %s does not support run checks.' % self.language) diff --git a/interpreter.py b/interpreter.py index 9d57136fd..9e8aa7c3d 100644 --- a/interpreter.py +++ b/interpreter.py @@ -680,11 +680,12 @@ class CompilerHolder(InterpreterObject): if len(args) != 1: raise InterpreterException('compiles method takes exactly one argument.') check_stringlist(args) - string = args[0] + code = args[0] testname = kwargs.get('name', '') if not isinstance(testname, str): raise InterpreterException('Testname argument must be a string.') - result = self.compiler.compiles(string) + args = mesonlib.stringlistify(kwargs.get('args', [])) + result = self.compiler.compiles(code, args) if len(testname) > 0: if result: h = mlog.green('YES') @@ -697,13 +698,12 @@ class CompilerHolder(InterpreterObject): if len(args) != 1: raise InterpreterException('links method takes exactly one argument.') check_stringlist(args) - string = args[0] + code = args[0] testname = kwargs.get('name', '') if not isinstance(testname, str): raise InterpreterException('Testname argument must be a string.') - args = kwargs.get('args', []) - args = mesonlib.stringlistify(args) - result = self.compiler.links(string, args) + args = mesonlib.stringlistify(kwargs.get('args', [])) + result = self.compiler.links(code, args) if len(testname) > 0: if result: h = mlog.green('YES')