我正在使用SCons构建一个非常大的项目,其中包含许多可构建的子项目。我可以很容易地使用像scons group=ai
这样的关键字命令来构建带有if语句的AI子项目(根据关键字命令选择正确的SConscripts ),但我想让其他人尽可能容易地使用scons。理想情况下,我希望这样使用它:scons ai
来构建AI组件。然而,到目前为止,我在SCons中发现的唯一的单字命令功能是别名,所有的示例都是关于更改目标的。这不是我想要的。由于我有一个非常大的项目,其中包含多个子SConscript文件来构建子项目,因此我想有选择地调用SConscripts。我尝试过这样的代码:
env.Alias("ai", SConscript("ai/SConscript", 'env'))
但是,无论我使用" AI“别名还是不同的别名,每次都会调用ai SConscript。有没有人知道是否可以使用别名这种方式来根据别名选择性地调用SConscripts?
发布于 2013-06-26 14:58:12
正如您所提到的,Alias()
函数仅用于目标。我可以想出两种方法来解决这个问题
对于具有不同目标的同一别名,可以多次调用Alias(),因此可以为每个SConscript中的所有目标调用它,然后可以在SConscript中构建所有内容。下面是我的意思的一个例子:
ai/SConscript:
# targets, etc
env.Alias("ai", target1)
env.Alias("ai", target2)
...
env.Alias("ai", targetn)
另一种选择是将一些逻辑放在根SConstruct中,以便它只基于命令行参数调用子项目SConscript。此选项要求您使用以下格式的命令行参数:group=ai
https://stackoverflow.com/questions/17308728
复制相似问题