diff options
author | Steven Knight <knight@baldmt.com> | 2003-10-21 03:52:32 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2003-10-21 03:52:32 (GMT) |
commit | 7e8e9218735c50093658d386c2d2be8087486512 (patch) | |
tree | 5c48d3c715940861dc44abf024588cb7ff14b16e /src/engine/SCons/SConf.py | |
parent | e48bef4f0520f04d71dfa2654621f3aa8a4fabe9 (diff) | |
download | SCons-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.py | 22 |
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: |