Source code for waftools.gnucc
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Michel Mooij, michel.mooij7@gmail.com
'''
Configures common release and debug settings for C/C++ compilers.
.. warning::
This module has been marked as deprecated and will be removed in
release version 0.5.0; use the *ccenv* module instead.
'''
[docs]def options(opt):
'''Add default command line options for C/C++ compilers
:param opt: options context
:type opt: waflib.Options.OptionsContext
'''
opt.add_option('--debug', dest='debug', default=False, action='store_true', help='build with debug information.')
[docs]def configure(conf):
cc = conf.env.CC_NAME
if cc is 'msvc':
configure_msvc(conf)
else:
configure_gcc(conf)
[docs]def configure_msvc(conf):
'''Configures general environment settings for MSVC compilers; e.g. set
default C/C++ compiler flags and defines based on the value of the
command line --debug option.
:param conf: configuration context
:type conf: waflib.Configure.ConfigurationContext
'''
flags = ['/Wall']
if conf.options.debug:
flags.extend(['/Od', '/Zi'])
defines = []
else:
flags.extend(['/Ox'])
defines = ['NDEBUG']
for cc in ('CFLAGS', 'CXXFLAGS'):
for flag in flags:
conf.env.append_unique(cc, flag)
for define in defines:
conf.env.append_unique('DEFINES', define)
[docs]def configure_gcc(conf):
'''Configures general environment settings for GNU compilers; e.g. set
default C/C++ compiler flags and defines based on the value of the
command line --debug option.
:param conf: configuration context
:type conf: waflib.Configure.ConfigurationContext
'''
flags = ['-Wall', '-pthread']
if conf.options.debug:
flags.extend(['-g', '-ggdb'])
defines = []
else:
flags.extend(['-O3'])
defines = ['NDEBUG']
for cc in ('CFLAGS', 'CXXFLAGS'):
for flag in flags:
conf.env.append_unique(cc, flag)
for define in defines:
conf.env.append_unique('DEFINES', define)