微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有集成区域的 waf 多项目设置

如何解决带有集成区域的 waf 多项目设置

我有一个文件IntegrationArea一个项目 main,由 2 个子项目 ab 组成,如下所示:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。