gpt4 book ai didi

python - SConscript 和 SConstruct 文件之间的区别?

转载 作者:行者123 更新时间:2023-12-01 09:27:04 27 4
gpt4 key购买 nike

作为 scons 的新手,我面临着使用通用顶级构建在一个存储库中转换具有多个模块的项目。每个模块已经有一个 SConstruct 文件 - 允许自己构建它们。

阅读分层 scons 设置,我发现这个想法是使用顶级 SConstruct,它使用 SConscript() 函数加载子项目的构建文件,并且这些文件应该被称为 SConscript。我发现其余信息有些模糊(或者可能是 TLDR?) - 所以

  • 想知道这些较低级别的脚本是否需要SConscript 文件?
  • IOW,是否有语义/范围/评估SConscripts 和 SConstructs 之间的区别除了一旨在作为入口点,而另一个只是“子构建”文件”?
  • 将这些子项目的 SConstructs 重构为有什么意义吗?成为同一级别中调用 SConscript 的一个衬垫 +将它们链接到顶层 Sconstruct?

谢谢!

最佳答案

按顺序回答您的问题

  1. 下层文件不能被称为任何名称,因为您在 SConscript() 调用中指定路径和文件名
  2. 每个 SConscript 都在其自己的范围内进行评估。您可以通过Export()(或SConscriptsexports=参数)传递并通过Import()引入SConscript(无论您最终如何调用它)。
  3. 完全取决于您是否想要将任何中央/顶级配置传播到您的子项目。这仍然可以通过子项目的 SConstruct 中的 Import() 语句来完成,然后检查您期望导入的变量是否已定义(也许通过 try/except )

这个子项目之前已经做过SConstructs。在子项目的 SConstructs 中使用 Import() 可能会更干净,然后在使用它之前验证您期望通过的内容是否存在。如果子项目也独立使用,那么用大量的评论来解释为什么要这样做......

这能回答你的问题吗?

关于python - SConscript 和 SConstruct 文件之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50298132/

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