Try to detect a C compiler from the list of supported compilers (gcc, msvc, etc):
def options(opt):
opt.load('compiler_c')
def configure(cnf):
cnf.load('compiler_c')
def build(bld):
bld.program(source='main.c', target='app')
The compilers are associated to platforms in waflib.Tools.compiler_c.c_compiler. To register a new C compiler named cfoo (assuming the tool waflib/extras/cfoo.py exists), use:
def options(opt):
opt.load('compiler_c')
def configure(cnf):
from waflib.Tools.compiler_c import c_compiler
c_compiler['win32'] = ['cfoo', 'msvc', 'gcc']
cnf.load('compiler_c')
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:
$ CC=clang waf configure
Dict mapping the platform names to waf tools finding specific compilers:
from waflib.Tools.compiler_c import c_compiler
c_compiler['linux'] = ['gcc', 'icc', 'suncc']
Try to find a suitable C compiler or raise a waflib.Errors.ConfigurationError.
Restrict the compiler detection from the command-line:
$ waf configure --check-c-compiler=gcc
Wrap logging.debug, the output is filtered for performance reasons