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:
from waflib.Tools.compiler_cxx import cxx_compiler
cxx_compiler['win32'] = ['cfoo', 'msvc', 'gcc']
def options(opt):
opt.load('compiler_cxx')
def configure(cnf):
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
= {'sunos': ['sunc++', 'g++'], 'cygwin': ['g++'], 'linux': ['g++', 'clang++', 'icpc'], 'darwin': ['clang++', 'g++'], 'java': ['g++', 'msvc', 'clang++', 'icpc'], 'aix': ['xlc++', 'g++', 'clang++'], 'gnu': ['g++', 'clang++'], 'default': ['g++', 'clang++'], 'irix': ['g++'], 'win32': ['msvc', 'g++', 'clang++'], 'hpux': ['g++'], 'osf1V': ['g++']}¶ Dict mapping the platform names to Waf tools finding specific C++ 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
.