获取waf将解决方案输出到另一个目录

Getting waf to output solution to another directory

我最近写了这个简单的 waf 构建脚本:

#! /usr/bin/env python
# encoding: utf-8

def options(opt):
    opt.load('compiler_cxx')
    opt.load('msvs')

def configure(conf):
    conf.load('compiler_cxx')

def build(bld):
    print('build')

但问题是输出的解决方案文件位于项目的根目录(wscript 所在的位置);

是否有办法将 ide 特定文件生成到另一个目录(例如,ide/msvs)?

您可以使用

重定向解决方案的输出
out = os.path.join('my', 'out', 'dir')

相对于 top_dir (https://waf.io/apidocs/Context.html?highlight=top_dir#waflib.Context.top_dir).

所以在你的情况下:

#! /usr/bin/env python
# encoding: utf-8
import os

out = os.path.join('my', 'out', 'dir')

def options(opt):
    opt.load('compiler_cxx')
    opt.load('msvs')

def configure(conf):
    conf.load('compiler_cxx')

def build(bld):
    print('build')