From 58148819d5b572e1c992871499b0682d59f2c212 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 17 Dec 2014 13:58:42 -0500 Subject: [PATCH] new version of autowaf.py (requires rebuild of waf to be used) --- tools/autowaf.py | 84 +++++++++++++----------------------------------- 1 file changed, 22 insertions(+), 62 deletions(-) diff --git a/tools/autowaf.py b/tools/autowaf.py index f5996d9cd2..0f25c6ea20 100644 --- a/tools/autowaf.py +++ b/tools/autowaf.py @@ -183,13 +183,32 @@ def ensure_visible_symbols(bld, visible): bld.cxxflags += [ '-fvisibility=hidden' ] bld.cflags += [ '-fvisibility=hidden' ] +def set_basic_compiler_flags (conf,flag_dict): + if Options.options.debug: + conf.env.append_value('CFLAGS',flag_dict['debuggable']) + conf.env.append_value('CXXFLAGS',flag_dict['debuggable']) + conf.env.append_value('LINKFLAGS',flag_dict['linker-debuggable']) + else: + conf.env.append_value('CFLAGS',flag_dict['nondebuggable']) + conf.env.append_value('CXXFLAGS',flag_dict['nondebuggable']) + + if Options.options.ultra_strict: + Options.options.strict = True + conf.env.append_value('CFLAGS', flag_dict['ultra-strict']) + + if Options.options.strict: + conf.env.append_value('CFLAGS', flag_dict['c-strict']) + conf.env.append_value('CXXFLAGS', flag_dict['cxx-strict']) + conf.env.append_value('CFLAGS', flag_dict['strict']) + conf.env.append_value('CXXFLAGS', flag_dict['strict']) + + conf.env.append_value('CFLAGS', flag_dict['show-column']) + conf.env.append_value('CXXFLAGS', flag_dict['show-column']) + def configure(conf): global g_step if g_step > 1: return - def append_cxx_flags(flags): - conf.env.append_value('CFLAGS', flags) - conf.env.append_value('CXXFLAGS', flags) print('') display_header('Global Configuration') @@ -227,58 +246,6 @@ def configure(conf): if not dot: conf.fatal("Graphviz (dot) is required to build with --docs") - if Options.options.debug: - if conf.env['MSVC_COMPILER']: - conf.env['CFLAGS'] = ['/Od', '/Zi', '/MTd'] - conf.env['CXXFLAGS'] = ['/Od', '/Zi', '/MTd'] - conf.env['LINKFLAGS'] = ['/DEBUG'] - else: - conf.env['CFLAGS'] = ['-O0', '-g'] - conf.env['CXXFLAGS'] = ['-O0', '-g'] - else: - if conf.env['MSVC_COMPILER']: - conf.env['CFLAGS'] = ['/MD'] - conf.env['CXXFLAGS'] = ['/MD'] - append_cxx_flags(['-DNDEBUG']) - - if Options.options.ultra_strict: - Options.options.strict = True - conf.env.append_value('CFLAGS', ['-Wredundant-decls', - '-Wstrict-prototypes', - '-Wmissing-prototypes']) - - if Options.options.strict: - conf.env.append_value('CFLAGS', ['-std=c99', '-pedantic', '-Wshadow']) - conf.env.append_value('CXXFLAGS', ['-ansi', - '-Wnon-virtual-dtor', - '-Woverloaded-virtual']) - append_cxx_flags(['-Wall', - '-Wcast-align', - '-Wextra', - '-Wwrite-strings']) - if sys.platform != "darwin": - # this is really only to be avoid on OLD apple gcc, but not sure how to version check - append_cxx_flags(['-fstrict-overflow']) - - if not conf.check_cc(fragment = ''' -#ifndef __clang__ -#error -#endif -int main() { return 0; }''', - features = 'c', - mandatory = False, - execute = False, - msg = 'Checking for clang'): - if sys.platform != "darwin": - # this is really only to be avoid on OLD apple gcc, but not sure how to version check - append_cxx_flags(['-Wunsafe-loop-optimizations']) - # this is invalid (still) on Lion apple gcc - append_cxx_flags(['-Wlogical-op']) - - - if not conf.env['MSVC_COMPILER']: - append_cxx_flags(['-fshow-column']) - conf.env.prepend_value('CFLAGS', '-I' + os.path.abspath('.')) conf.env.prepend_value('CXXFLAGS', '-I' + os.path.abspath('.')) @@ -289,13 +256,6 @@ int main() { return 0; }''', g_step = 2 -def set_c99_mode(conf): - if conf.env.MSVC_COMPILER: - # MSVC has no hope or desire to compile C99, just compile as C++ - conf.env.append_unique('CFLAGS', ['-TP']) - else: - conf.env.append_unique('CFLAGS', ['-std=c99']) - def set_local_lib(conf, name, has_objects): var_name = 'HAVE_' + nameify(name.upper()) define(conf, var_name, 1)