aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers.py8
-rw-r--r--mesonbuild/interpreter.py11
2 files changed, 10 insertions, 9 deletions
diff --git a/mesonbuild/compilers.py b/mesonbuild/compilers.py
index bbe6a72..5cb5325 100644
--- a/mesonbuild/compilers.py
+++ b/mesonbuild/compilers.py
@@ -638,13 +638,11 @@ class CCompiler(Compiler):
code = 'int main(int argc, char **argv) { int class=0; return class; }\n'
return self.sanity_check_impl(work_dir, environment, 'sanitycheckc.c', code)
- def has_header(self, hname, env, extra_args=None, dependencies=None):
+ def has_header(self, hname, prefix, env, extra_args=None, dependencies=None):
if extra_args is None:
extra_args = []
- templ = '''#include<%s>
-int someSymbolHereJustForFun;
-'''
- return self.compiles(templ % hname, env, extra_args, dependencies)
+ code = '{}\n#include<{}>\nint someUselessSymbol;'.format(prefix, hname)
+ return self.compiles(code, env, extra_args, dependencies)
def has_header_symbol(self, hname, symbol, prefix, env, extra_args=None, dependencies=None):
if extra_args is None:
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 0030660..17711c4 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -896,15 +896,18 @@ class CompilerHolder(InterpreterObject):
if len(args) != 1:
raise InterpreterException('has_header method takes exactly one argument.')
check_stringlist(args)
- string = args[0]
+ hname = args[0]
+ prefix = kwargs.get('prefix', '')
+ if not isinstance(prefix, str):
+ raise InterpreterException('Prefix argument of has_header must be a string.')
extra_args = self.determine_args(kwargs)
deps = self.determine_dependencies(kwargs, allowed_dep_types=(dependencies.Dependency,))
- haz = self.compiler.has_header(string, self.environment, extra_args, deps)
+ haz = self.compiler.has_header(hname, prefix, self.environment, extra_args, deps)
if haz:
h = mlog.green('YES')
else:
h = mlog.red('NO')
- mlog.log('Has header "%s":' % string, h)
+ mlog.log('Has header "%s":' % hname, h)
return haz
def has_header_symbol_method(self, args, kwargs):
@@ -915,7 +918,7 @@ class CompilerHolder(InterpreterObject):
symbol = args[1]
prefix = kwargs.get('prefix', '')
if not isinstance(prefix, str):
- raise InterpreterException('Prefix argument of has_function must be a string.')
+ raise InterpreterException('Prefix argument of has_header_symbol must be a string.')
extra_args = self.determine_args(kwargs)
deps = self.determine_dependencies(kwargs, allowed_dep_types=(dependencies.Dependency,))
haz = self.compiler.has_header_symbol(hname, symbol, prefix, self.environment, extra_args, deps)