gpt4 book ai didi

dependencies - 如何让 SCons 选择性地忽略对自定义构建器的依赖?

转载 作者:行者123 更新时间:2023-12-04 02:41:42 25 4
gpt4 key购买 nike

这是我的项目的依赖结构:

有一个文件 F,文件 A、B 和 C 都从该文件派生而来。项目中的其他一切最终都取决于 A、B 或 C。

A、B 和 C 是使用自定义生成器构建的,如下所示:

ABCbuilder = Builder(action = build_abc)
env = Environment(BUILDERS = {'abc' : ABCbuilder,...}
env.abc([A,B,C],[F])

问题是 F 很笨重,我希望可以选择不将它包含在分发中,而只包含 A、B 和 C。

如果 A、B 和 C 在没有 F 的情况下存在,我如何才能让 SCons 接受它们作为起始源?目前,如果我将 A、B 和 C 复制到一个不包含 F 的新目录中,它会尝试重建它们。

我看过手册部分 6.7. Ignoring Dependencies: the Ignore Function ,但我不知道如何将它应用到我的代码中。

最佳答案

您可以在 SCons man pages 中找到有关 Ignore() 函数的更多详细信息。 .这是根据手册页的签名:

Ignore(target, dependency)
env.Ignore(target, dependency)

您应该能够执行以下操作:

# assuming aTarget, bTarget, cTarget, and F are set accordingly

Ignore(aTarget, F)
Ignore(bTarget, F)
Ignore(cTarget, F)

在 SCons 中有几种不同的方式来处理命令行选项,here是一个概述:

最简单的方法是this ,这将允许您执行以下操作:

useF = ARGUMENTS.get('includeF', 0)
if not int(useF):
Ignore(aTarget, F)
Ignore(bTarget, F)
Ignore(cTarget, F)

命令行看起来像这样:

#scons includeF=1

关于dependencies - 如何让 SCons 选择性地忽略对自定义构建器的依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19780022/

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