使用多个从属输入文件生成WAF代码

时间:2019-03-19 11:20:16

标签: waf

在以下情况下,如何最好使用WAF(https://waf.io/)?

model1.m + model2.m->代码生成器->许多.h和.cpp文件->编译

  • model1.m和model2.m必须一起处理。
  • 代码生成器非常慢,我们仅应在文件已更改的情况下生成/编译。

我当前的方法是创建一个支持以下功能的功能。

def build(bld):
    bld.shlib(
        features='cxx gen_messaging', 
        name="messages",
        source='model1.m model2.m')

该功能基本上是从self.source获取模型文件,然后运行代码生成,最后将新的源添加到self.source。

我所缺少的是检测模型文件是否已更改。请给我建议。

1 个答案:

答案 0 :(得分:0)

我想你做过类似https://waf.io/book/#_mixing_extensions_and_c_c_features的事情。这样,它应该可以工作。但是,正如您提到要一起处理模型的要求一样,我想您已经设计了一个特定的Task类。在这种情况下,您必须编写类似https://waf.io/book/#_custom_tasks的代码。重要的是在run()runnable_status()方法中正确处理签名。