diff --git a/Tools/ardupilotwaf/boards.py b/Tools/ardupilotwaf/boards.py index 3491fb7920..50d8372360 100644 --- a/Tools/ardupilotwaf/boards.py +++ b/Tools/ardupilotwaf/boards.py @@ -774,22 +774,31 @@ class sitl(Board): # whitelist of compilers which we should build with -Werror gcc_whitelist = frozenset([ ('11','3','0'), + ('12','1','0'), ]) - werr_enabled_default = bool('g++' == cfg.env.COMPILER_CXX and cfg.env.CC_VERSION in gcc_whitelist) + # initialise werr_enabled from defaults: + werr_enabled = bool('g++' in cfg.env.COMPILER_CXX and cfg.env.CC_VERSION in gcc_whitelist) - if werr_enabled_default or cfg.options.Werror: - if not cfg.options.disable_Werror: - cfg.msg("Enabling -Werror", "yes") - if '-Werror' not in env.CXXFLAGS: - env.CXXFLAGS += [ '-Werror' ] - else: - cfg.msg("Enabling -Werror", "no") - if '-Werror' in env.CXXFLAGS: - env.CXXFLAGS.remove('-Werror') - else: + # now process overrides to that default: + if (cfg.options.Werror is not None and + cfg.options.Werror == cfg.options.disable_Werror): + cfg.fatal("Asked to both enable and disable Werror") + + if cfg.options.Werror is not None: + werr_enabled = cfg.options.Werror + elif cfg.options.disable_Werror is not None: + werr_enabled = not cfg.options.disable_Werror + + if werr_enabled: cfg.msg("Enabling -Werror", "yes") - + if '-Werror' not in env.CXXFLAGS: + env.CXXFLAGS += [ '-Werror' ] + else: + cfg.msg("Enabling -Werror", "no") + if '-Werror' in env.CXXFLAGS: + env.CXXFLAGS.remove('-Werror') + def get_name(self): return self.__class__.__name__ diff --git a/wscript b/wscript index 18920e3dd9..8205d4f0f1 100644 --- a/wscript +++ b/wscript @@ -143,12 +143,12 @@ def options(opt): g.add_option('--Werror', action='store_true', - default=False, + default=None, help='build with -Werror.') g.add_option('--disable-Werror', action='store_true', - default=True, + default=None, help='Disable -Werror.') g.add_option('--toolchain',