compiler_cxx

Try to detect a C++ compiler from the list of supported compilers (g++, msvc, etc):

def options(opt):
        opt.load('compiler_cxx')
def configure(cnf):
        cnf.load('compiler_cxx')
def build(bld):
        bld.program(source='main.cpp', target='app')

The compilers are associated to platforms in waflib.Tools.compiler_cxx.cxx_compiler. To register a new C++ compiler named cfoo (assuming the tool waflib/extras/cfoo.py exists), use:

def options(opt):
        opt.load('compiler_cxx')
def configure(cnf):
        from waflib.Tools.compiler_cxx import cxx_compiler
        cxx_compiler['win32'] = ['cfoo', 'msvc', 'gcc']
        cnf.load('compiler_cxx')
def build(bld):
        bld.program(source='main.c', target='app')

Not all compilers need to have a specific tool. For example, the clang compilers can be detected by the gcc tools when using:

$ CXX=clang waf configure
waflib.Tools.compiler_cxx.cxx_compiler

Dict mapping the platform names to waf tools finding specific compilers:

from waflib.Tools.compiler_cxx import cxx_compiler
cxx_compiler['linux'] = ['gxx', 'icpc', 'suncxx']
waflib.Tools.compiler_cxx.configure(conf)[source]

Try to find a suitable C++ compiler or raise a waflib.Errors.ConfigurationError.

waflib.Tools.compiler_cxx.debug(*k, **kw)

Wrap logging.debug, the output is filtered for performance reasons

waflib.Tools.compiler_cxx.options(opt)[source]

Restrict the compiler detection from the command-line:

$ waf configure --check-cxx-compiler=gxx

Previous topic

compiler_c

Next topic

ar

This Page