It seems that on older GCCs (e.g. the one from Ubuntu 18.04) the
pragma to temporarily turn off this warning does not work, so here
we only use it on newer GCCs where we can turn it off for libraries
that trigger the warning (mostly asdcplib, but also wxWidgets).
_Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
_Pragma("GCC diagnostic ignored \"-Waddress\"") \
_Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
_Pragma("GCC diagnostic ignored \"-Waddress\"") \
- _Pragma("GCC diagnostic ignored \"-Wparentheses\"") \
- _Pragma("GCC diagnostic ignored \"-Wsuggest-override\"")
+ _Pragma("GCC diagnostic ignored \"-Wparentheses\"")
#endif
#define DCPOMATIC_ENABLE_WARNINGS \
#endif
#define DCPOMATIC_ENABLE_WARNINGS \
'-Wall',
'-Wextra',
'-Wwrite-strings',
'-Wall',
'-Wextra',
'-Wwrite-strings',
'-Wno-error=deprecated',
# I tried and failed to ignore these with _Pragma
'-Wno-ignored-qualifiers',
'-Wno-error=deprecated',
# I tried and failed to ignore these with _Pragma
'-Wno-ignored-qualifiers',
if int(gcc[0]) >= 8:
# I tried and failed to ignore these with _Pragma
conf.env.append_value('CXXFLAGS', ['-Wno-cast-function-type'])
if int(gcc[0]) >= 8:
# I tried and failed to ignore these with _Pragma
conf.env.append_value('CXXFLAGS', ['-Wno-cast-function-type'])
+ if int(gcc[0]) >= 9:
+ # I can't get #pragma GCC diagnostic ignored "-Wsuggest-override" to work on older GCCs,
+ # so only enable this if we're on a newer one
+ conf.env.append_value('CXXFLAGS', '-Wsuggest-override')
have_c11 = int(gcc[0]) >= 4 and int(gcc[1]) >= 8 and int(gcc[2]) >= 1
# Most gccs still give these warnings from boost::optional
conf.env.append_value('CXXFLAGS', ['-Wno-maybe-uninitialized'])
have_c11 = int(gcc[0]) >= 4 and int(gcc[1]) >= 8 and int(gcc[2]) >= 1
# Most gccs still give these warnings from boost::optional
conf.env.append_value('CXXFLAGS', ['-Wno-maybe-uninitialized'])