4

如何确定 waf 选择哪个特定工具作为“cxx_compiler”等?示例:

def configure(ctx):
   print('Running ' + ctx.cmd + ' in ' + ctx.path.abspath() )
   ctx.load('compiler_c')
   ctx.load('compiler_cxx')

def build(ctx):
   print('Running ' + ctx.cmd + ' in ' + ctx.path.abspath() )
   # Here print which C++ compiler was chosen
   print 'Building cpp files with %s' % WHAT_GOES_HERE
4

1 回答 1

6
def options(opt):
    opt.load('compiler_c')
    opt.load('compiler_cxx')

def configure(cfg):
    cfg.load('compiler_c')
    cfg.load('compiler_cxx')

def build(bld):
    print "Compiler is CC_NAME  %s  CC  %s"%(bld.env.CC_NAME,bld.env.CC)
    print "Compiler is CXX_NAME %s  CXX %s"%(bld.env.CXX_NAME,bld.env.CXX)

会给你:

D:\temp>waf.bat configure build --check-c-compiler=gcc --check-cxx-compiler=g++
Setting top to                           : D:\temp
Setting out to                           : D:\temp\build
Checking for 'gcc' (c compiler)          : c:\tools\gcc\bin\gcc.exe
Checking for 'g++' (c++ compiler)        : c:\tools\gcc\bin\g++.exe
'configure' finished successfully (0.191s)
Waf: Entering directory `D:\temp\build'
Compiler is CC_NAME  gcc  CC  ['c:\\tools\\gcc\\bin\\gcc.exe']
Compiler is CXX_NAME gcc  CXX ['c:\\tools\\gcc\\bin\\g++.exe']
Waf: Leaving directory `D:\temp\build'
'build' finished successfully (0.008s)
于 2013-02-27T00:28:40.483 回答