如何在waf中避免库多次检查

How to avoid library multiple checks in waf?

本文关键字:检查 waf      更新时间:2023-10-16

我试图在几个项目中使用不同的模块(具有独立的wscript文件),以便模块可以在一个地方开发,并可以在许多地方检查。

我有一个项目的顶部wscript像这样:

def configure(cfg):
  ...
  cfg.recurse('a')
  cfg.recurse('b')
  ...

和wscript的模块从subdirs '。/a' and './b':

def configure(cfg):
  ...
  cfg.check_cxx(lib='z')
  ...

那么,有没有办法告诉waf只检查libz一次呢?

不,没有内置的东西可以做到这一点。我只能建议一些变通办法:-获取一些你知道会被check_cxx定义的东西如果"LIB_Z"不在cfg. cfg中。env: cfg.check_cxx(…)-或者添加make check_cxx定义一些东西如果cfg.get_define("HAVE_ZLIB")不是None:check_cxx(自由= ' z ' define_name ="HAVE_ZLIB")

我怀疑任何缓存可以在方法中执行,如check_cxx,他们可以做很多事情,并由关键字控制…