summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/SConf.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-10-21 03:52:32 (GMT)
committerSteven Knight <knight@baldmt.com>2003-10-21 03:52:32 (GMT)
commit7e8e9218735c50093658d386c2d2be8087486512 (patch)
tree5c48d3c715940861dc44abf024588cb7ff14b16e /src/engine/SCons/SConf.py
parente48bef4f0520f04d71dfa2654621f3aa8a4fabe9 (diff)
downloadSCons-7e8e9218735c50093658d386c2d2be8087486512.zip
SCons-7e8e9218735c50093658d386c2d2be8087486512.tar.gz
SCons-7e8e9218735c50093658d386c2d2be8087486512.tar.bz2
Support arbitrary header-file preambles when checking for #include files.
Diffstat (limited to 'src/engine/SCons/SConf.py')
-rw-r--r--src/engine/SCons/SConf.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/engine/SCons/SConf.py b/src/engine/SCons/SConf.py
index ee3a6b5..0fbde14 100644
--- a/src/engine/SCons/SConf.py
+++ b/src/engine/SCons/SConf.py
@@ -30,6 +30,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import cPickle
import os
+import string
import sys
import traceback
from types import *
@@ -109,6 +110,7 @@ class SConf:
default_tests = {
'CheckFunc' : CheckFunc,
'CheckType' : CheckType,
+ 'CheckHeader' : CheckHeader,
'CheckCHeader' : CheckCHeader,
'CheckCXXHeader' : CheckCXXHeader,
'CheckLib' : CheckLib,
@@ -643,9 +645,14 @@ def CheckHeader(context, header, include_quotes = '<>', language = None):
"""
A test for a C or C++ header file.
"""
- # ToDo: Support also system header files (i.e. #include <header.h>)
- res = SCons.Conftest.CheckHeader(context, header, language = language,
- include_quotes = include_quotes)
+ if not SCons.Util.is_List(header):
+ header = [header]
+ l = []
+ for s in header[:-1]:
+ l.append("#include %s%s%s\n" % (include_quotes[0], s, include_quotes[1]))
+ res = SCons.Conftest.CheckHeader(context, header[-1], string.join(l, ''),
+ language = language,
+ include_quotes = include_quotes)
context.did_show_result = 1
if not res:
return 1 # Ok
@@ -700,8 +707,13 @@ def CheckLibWithHeader(context, library, header, language,
without extra link flags.
"""
- res = SCons.Conftest.CheckLib(context, library, "main",
- header = '#include "%s"' % header,
+ if not SCons.Util.is_List(header):
+ header = [header]
+ l = []
+ for s in header:
+ l.append('#include "%s"\n' % (s))
+
+ res = SCons.Conftest.CheckLib(context, library, "main", string.join(l, ''),
call = call, language = language, autoadd = autoadd)
context.did_show_result = 1
if not res: