gpt4 book ai didi

c++ - 我可以使用 SCons 别名来选择要运行的 SConscripts 吗?

转载 作者:行者123 更新时间:2023-11-28 03:14:39 26 4
gpt4 key购买 nike

我正在使用 SCons 构建一个非常大的项目,其中包含许多可构建的子项目。我可以轻松地使用关键字命令,如 scons group=ai 来构建带有 if 语句的 AI 子项目(根据关键字命令选择正确的 SConscripts),但我想让它尽可能简单供其他人使用 scons。理想情况下,我想像这样使用它:scons ai 来构建 AI 组件。但是,到目前为止,我在 SCons 中发现的唯一单字命令功能是别名,所有示例都是关于更改目标的。这不是我想要的。由于我有一个非常大的项目,其中包含多个用于构建子项目的子 SConscript 文件,因此我想有选择地调用 SConscripts。我试过这样的代码:

env.Alias("ai", SConscript("ai/SConscript", 'env'))

但这每次都会调用 AI SConscript,无论我使用的是“ai”别名还是其他别名。有谁知道是否可以通过这种方式使用别名来根据别名有选择地调用 SConscripts?

最佳答案

如您所述,Alias() 函数仅用于目标。我可以想到 2 种方法来解决这个问题

Alias() 可以针对具有不同目标的相同别名多次调用,因此您可以为每个 SConscript 中的所有目标调用它,然后您可以在 SConscript 中构建所有内容。这是我的意思的一个例子:

人工智能/征兵:

# targets, etc

env.Alias("ai", target1)
env.Alias("ai", target2)
...
env.Alias("ai", targetn)

另一种选择是在您的根 SConstruct 中放置一些逻辑,以便它仅根据命令行参数调用子项目 SConscript。此选项将要求您使用以下形式的命令行参数:group=ai

关于c++ - 我可以使用 SCons 别名来选择要运行的 SConscripts 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17308728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com