问题描述
我有一个文件夹 IntegrationArea
和一个项目 main
,由 2 个子项目 a
和 b
组成,如下所示:
IntegrationArea
main
|
a
|
wscript
|
b
|
wscript
|
wscript
在 waf build
中运行 main/a
会在 a/build
中构建工件。从 waf install
运行 main/a
会将 a/build
中的工件安装到 IntegrationArea
。因此,在构建之后,工件可用于构建 main/b
。
如何编写 main/wscript
以便从 waf build
运行 main
会产生以下结果:
cd a; waf build; waf install
cd ../b; waf build; waf install
我需要 main/wscript
来包含类似的内容
bld.cmd=('build install')
bld.recurse('a b')
解决方法
我不确定我是否理解您的问题。如果你有类似的东西:
# wscript in main
def build(bld):
bld.recurse(["a","b"])
与:
# wscript in a
def build(bld):
bld(rule = touch,target = "a")
bld.install_files("../integration","a")
def touch(task):
task.outputs[0].write("done a")
还有:
# wscript in b
def build(bld):
bld(rule = touch,target = "b")
bld.install_files("../integration","b")
def touch(task):
task.outputs[0].write("done b")
您可以直接转到主目录并开始安装:
cd ~/main
waf install