读取环境/壳变量
我看到 waf
会读取一些 shell 变量并把它们保存到自己的环境中(https://code.google.com/p/waf/wiki/EnvironmentVariables)。但是在《Waf 书》中,我找不到如何添加我感兴趣的其他变量,让它在 configure
时被读取。我是不是只需要用 Python 的 os
库来读取,还是说 waf
有其他的方法可以做到这一点呢?
谢谢!
1 个回答
1
没错,waf的一个好处就是它是用Python写的,这样你就可以从任何地方获取数据,使用Python的库来读取。
不过,waf已经为你做好了很多工作。在ApiDocs中,有一个叫做add_os_flags的功能,它可以把操作系统的环境变量读取到一个叫做env的字典里,这个字典是在Configure对象里面的。
举个例子:
def configure(conf):
conf.add_os_flags('CFLAGS')
我想说,把数据放在构建中,而不是放在外部变量里,可能会更好,并且通过命令行选项来处理。这是因为这样可以让项目更容易迁移到其他环境中,而且不需要设置那些可能会被遗忘的额外东西。换句话说,把配置放在一个地方,而不是分散在多个地方。