wscript: more paranoic Werrors

This commit is contained in:
Alibek Omarov 2019-10-05 03:06:51 +03:00
parent cb62e65f9f
commit e6dd4882cc
1 changed files with 25 additions and 9 deletions

34
wscript
View File

@ -3,7 +3,7 @@
# a1batross, mittorn, 2018
from __future__ import print_function
from waflib import Logs
from waflib import Logs, Context, Configure
import sys
import os
@ -11,6 +11,8 @@ VERSION = '0.99'
APPNAME = 'xash3d-fwgs'
top = '.'
Context.Context.line_just = 55 # should fit for everything on 80x26
class Subproject:
name = ''
dedicated = True # if true will be ignored when building dedicated server
@ -65,12 +67,12 @@ def options(opt):
opt.load('msvc msdev msvs')
opt.load('reconfigure')
@Configure.conf
def filter_cflags(conf, flags, required_flags, cxx):
supported_flags = []
check_flags = required_flags + ['-Werror']
conf.msg('Detecting supported flags for %s' % ('C++' if cxx else 'C'),'...')
conf.msg('Detecting supported flags for %s' % ('C++' if cxx else 'C'), '...')
for flag in flags:
conf.start_msg('Checking for %s' % flag)
try:
@ -119,7 +121,6 @@ def configure(conf):
# modify options dictionary early
if conf.env.DEST_OS == 'android':
conf.options.ALLOW64 = True # skip pointer length check
conf.options.NO_VGUI = True # skip vgui
conf.options.NANOGL = True
conf.options.GLWES = True
@ -189,8 +190,24 @@ def configure(conf):
'-Werror=int-conversion',
'-Werror=return-type',
'-Werror=parentheses',
'-Werror=vla',
'-Werror=tautological-compare',
'-Werror=duplicated-cond',
'-Werror=duplicated-branches', # BEWARE: buggy
'-Werror=bool-compare',
'-Werror=bool-operation',
'-Wstrict-aliasing',
]
c_compiler_optional_flags = [
'-Werror=implicit-int',
'-Werror=strict-prototypes',
'-Werror=old-style-declaration',
'-Werror=old-style-definition',
'-Werror=declaration-after-statement'
]
conf.env.append_unique('LINKFLAGS', conf.get_flags_by_type(
linker_flags, conf.options.BUILD_TYPE, conf.env.COMPILER_CC))
@ -201,9 +218,9 @@ def configure(conf):
else:
conf.check_cc(cflags=cflags, msg= 'Checking for required C flags')
conf.check_cxx(cxxflags=cflags, msg= 'Checking for required C++ flags')
conf.env.append_unique('CFLAGS', cflags + filter_cflags(conf, compiler_optional_flags, cflags, False))
conf.env.append_unique('CXXFLAGS', cflags + filter_cflags(conf, compiler_optional_flags, cflags, True))
conf.env.append_unique('CFLAGS', cflags + conf.filter_cflags(compiler_optional_flags + c_compiler_optional_flags, cflags, False))
conf.env.append_unique('CXXFLAGS', cflags + conf.filter_cflags(compiler_optional_flags, cflags, True))
conf.env.DEDICATED = conf.options.DEDICATED
@ -231,7 +248,6 @@ def configure(conf):
conf.check_cc( lib='psapi' )
conf.check_cc( lib='ws2_32' )
# indicate if we are packaging for Linux/BSD
if(not conf.options.WIN_INSTALL and
conf.env.DEST_OS not in ['win32', 'darwin', 'android']):