summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames McCoy <vega.james@gmail.com>2014-09-15 02:21:30 (GMT)
committerJames McCoy <vega.james@gmail.com>2014-09-15 02:21:30 (GMT)
commitf8614aa2d65f2b2484efdaf55a4b8c506157e915 (patch)
tree0b3c65c4c6835950678daf9b1d3065834d20ce30
parent2607d69b86683acd061491826b5bf304f552284d (diff)
downloadSCons-f8614aa2d65f2b2484efdaf55a4b8c506157e915.zip
SCons-f8614aa2d65f2b2484efdaf55a4b8c506157e915.tar.gz
SCons-f8614aa2d65f2b2484efdaf55a4b8c506157e915.tar.bz2
Support -isystem in ParseFlags
The -isystem flag specifies an include directory that is afforded the same special treatment (e.g., suppression of warnings) as the typical system include directories.
-rw-r--r--src/engine/SCons/Environment.py5
-rw-r--r--src/engine/SCons/EnvironmentTests.py10
2 files changed, 12 insertions, 3 deletions
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py
index 62d6809..5f2c9ff 100644
--- a/src/engine/SCons/Environment.py
+++ b/src/engine/SCons/Environment.py
@@ -719,6 +719,9 @@ class SubstitutionEnvironment(object):
t = ('-isysroot', arg)
dict['CCFLAGS'].append(t)
dict['LINKFLAGS'].append(t)
+ elif append_next_arg_to == '-isystem':
+ t = ('-isystem', arg)
+ dict['CCFLAGS'].append(t)
elif append_next_arg_to == '-arch':
t = ('-arch', arg)
dict['CCFLAGS'].append(t)
@@ -791,7 +794,7 @@ class SubstitutionEnvironment(object):
elif arg[0] == '+':
dict['CCFLAGS'].append(arg)
dict['LINKFLAGS'].append(arg)
- elif arg in ['-include', '-isysroot', '-arch']:
+ elif arg in ['-include', '-isysroot', '-isystem', '-arch']:
append_next_arg_to = arg
else:
dict['CCFLAGS'].append(arg)
diff --git a/src/engine/SCons/EnvironmentTests.py b/src/engine/SCons/EnvironmentTests.py
index b9ef3f2..a0869e8 100644
--- a/src/engine/SCons/EnvironmentTests.py
+++ b/src/engine/SCons/EnvironmentTests.py
@@ -805,7 +805,9 @@ sys.exit(0)
"-pthread " + \
"-fopenmp " + \
"-mno-cygwin -mwindows " + \
- "-arch i386 -isysroot /tmp +DD64 " + \
+ "-arch i386 -isysroot /tmp " + \
+ "-isystem /usr/include/foo " + \
+ "+DD64 " + \
"-DFOO -DBAR=value -D BAZ "
d = env.ParseFlags(s)
@@ -815,6 +817,7 @@ sys.exit(0)
assert d['CCFLAGS'] == ['-X', '-Wa,-as',
'-pthread', '-fopenmp', '-mno-cygwin',
('-arch', 'i386'), ('-isysroot', '/tmp'),
+ ('-isystem', '/usr/include/foo'),
'+DD64'], repr(d['CCFLAGS'])
assert d['CXXFLAGS'] == ['-std=c++0x'], repr(d['CXXFLAGS'])
assert d['CPPDEFINES'] == ['FOO', ['BAR', 'value'], 'BAZ'], d['CPPDEFINES']
@@ -2051,7 +2054,9 @@ def generate(env):
"-F fwd3 " + \
"-pthread " + \
"-mno-cygwin -mwindows " + \
- "-arch i386 -isysroot /tmp +DD64 " + \
+ "-arch i386 -isysroot /tmp " + \
+ "-isystem /usr/include/foo " + \
+ "+DD64 " + \
"-DFOO -DBAR=value")
env.ParseConfig("fake $COMMAND")
assert save_command == ['fake command'], save_command
@@ -2059,6 +2064,7 @@ def generate(env):
assert env['CCFLAGS'] == ['', '-X', '-Wa,-as',
'-pthread', '-mno-cygwin',
('-arch', 'i386'), ('-isysroot', '/tmp'),
+ ('-isystem', '/usr/include/foo'),
'+DD64'], env['CCFLAGS']
assert env['CPPDEFINES'] == ['FOO', ['BAR', 'value']], env['CPPDEFINES']
assert env['CPPFLAGS'] == ['', '-Wp,-cpp'], env['CPPFLAGS']