This stackoverflow question显示了如何获取一个或多个目标的所有依赖项列表。你如何从SConstruct文件中获得相同的东西?
编辑: 也就是说,作为对象或其他东西。您总是可以递归调用scons -tree = all并从该进程中获取stdout,但我不想要黑客攻击。我想访问依赖对象scons正在使用。
答案 0 :(得分:1)
获取此信息的最佳方法是查看SCons的源代码。您正在寻找文件SCons/Script/Main.py,尤其是TreePrinter
类。基本思想是所有SCons节点都包含用于重建依赖图的所有相关细节。
我能想到的最简单的测试用例是:
import os
env = Environment(ENV = os.environ)
app = env.Program('dummy', 'main.cpp')
for item in app:
for child in item.all_children():
print child
执行此操作的代码并不是那么复杂,但我当然不希望依赖它而不是更改(它不是SCons的公共接口的一部分)。