=== modified file 'wafadmin/Tools/cflags.py' --- wafadmin/Tools/cflags.py 2008-12-30 18:22:22 +0000 +++ wafadmin/Tools/cflags.py 2009-01-22 13:48:55 +0000 @@ -51,6 +51,41 @@ return (['-ggdb', '-g3'], ['_DEBUG']) +class IccTraits(CompilerTraits): + def __init__(self): + super(IccTraits, self).__init__() + # cumulative list of warnings per level + # icc is _very_ verbose with -Wall, -Werror is barely achievable + self.warnings_flags = [[], [], ['-Wall']] + + def get_warnings_flags(self, level): + warnings = [] + for l in range(level): + if l < len(self.warnings_flags): + warnings.extend(self.warnings_flags[l]) + else: + break + return warnings + + def get_optimization_flags(self, level): + if level == 0: + return ['-O0'] + elif level == 1: + return ['-O'] + elif level == 2: + return ['-O2'] + elif level == 3: + return ['-O3'] + + def get_debug_flags(self, level): + if level == 0: + return (['-g0'], ['NDEBUG']) + elif level == 1: + return (['-g'], []) + elif level >= 2: + return (['-ggdb', '-g3'], ['_DEBUG']) + + class MsvcTraits(CompilerTraits): def __init__(self): @@ -88,6 +123,7 @@ gcc = GccTraits() +icc = IccTraits() msvc = MsvcTraits() # how to map env['COMPILER_CC'] or env['COMPILER_CXX'] into a traits object @@ -95,6 +131,8 @@ 'gcc': gcc, 'g++': gcc, 'msvc': msvc, + 'icc': icc, + 'icpc': icc, } profiles = {