# See also:
# - http://msdn.microsoft.com/en-us/library/19z1t1wy.aspx
# - cl /?
+ if 'MSVC_VERSION' not in env or distutils.version.LooseVersion(env['MSVC_VERSION']) < distutils.version.LooseVersion('12.0'):
+ # Use bundled stdbool.h and stdint.h headers for older MSVC
+ # versions. stdint.h was introduced in MSVC 2010, but stdbool.h
+ # was only introduced in MSVC 2013.
+ top_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+ env.Append(CPPPATH = [os.path.join(top_dir, 'include/c99')])
if env['build'] == 'debug':
ccflags += [
'/Od', # disable optimizations
]
ccflags += [
'/W3', # warning level
- #'/Wp64', # enable 64 bit porting warnings
+ '/wd4244', # conversion from 'type1' to 'type2', possible loss of data
+ '/wd4305', # truncation from 'type1' to 'type2'
+ '/wd4800', # forcing value to bool 'true' or 'false' (performance warning)
'/wd4996', # disable deprecated POSIX name warnings
]
if env['machine'] == 'x86':
else:
env['_LIBFLAGS'] = '-Wl,--start-group ' + env['_LIBFLAGS'] + ' -Wl,--end-group'
if env['platform'] == 'windows':
+ linkflags += [
+ '-Wl,--nxcompat', # DEP
+ '-Wl,--dynamicbase', # ASLR
+ ]
# Avoid depending on gcc runtime DLLs
linkflags += ['-static-libgcc']
if 'w64' in env['CC'].split('-'):
linkflags += [
'/fixed:no',
'/incremental:no',
+ '/dynamicbase', # ASLR
+ '/nxcompat', # DEP
]
env.Append(LINKFLAGS = linkflags)
env.Append(SHLINKFLAGS = shlinkflags)
createInstallMethods(env)
env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes'])
- env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1'])
+ env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1', 'xcb-dri2 >= 1.8'])
env.PkgCheckModules('XF86VIDMODE', ['xxf86vm'])
env.PkgCheckModules('DRM', ['libdrm >= 2.4.38'])
- env.PkgCheckModules('DRM_INTEL', ['libdrm_intel >= 2.4.52'])
env.PkgCheckModules('UDEV', ['libudev >= 151'])
env['dri'] = env['x11'] and env['drm']