是否可以在SCons中实现类似于回退构建方法的功能?你知道吗
例如,我的SConscript中有以下代码:
if check_something():
MyBuilder(a, b)
....
if dont_know_how_to_build(a):
FallBackBuilder(a, c)
我无法预测“正常构建方法”是否会被激活。
但我希望它没有被激活而烤饼没有
知道如何构建a
,它使用了FallBackBuilder
。你知道吗
我当然明白写作是可行的 比如:
if check_something():
MyBuilder(a, b)
else:
FallBackBuilder(a, c)
但我不满意这个解决方案,
因为在我的SConscript/SConstruct文件中可能有上千个位置
其中可以指定a
的某些生成器。你知道吗
我只想指定一些“回退”方法 在和的斯堪的纳克。你知道吗
你觉得呢?有可能吗?或者这是一个错误的方向?你知道吗
换言之,如果可能的话,在SConscript中的某个地方可以得到一个已经有关联构建器的对象列表?你知道吗
例如:
Builder1(a,b)
Builder2(b,c)
list_of_buildable_objects = get_list_of_buildable_objects()
Builder3(c,d)
我想知道如何获得可构建对象的列表,在本例中,该列表必须等于[a, b]
或类似的值。你知道吗
现在不可能像你说的那样。你知道吗
SConstruct/SConscripts用于告诉SCons要做什么。它不会马上做这些事情。它使用这些信息来构建一个依赖关系树,由一些源扫描程序添加到该树中,以构建(希望)系统中所有依赖关系的完整图片。你知道吗
然后遍历这个DAG(有向无环图),以确定要发出的命令的正确顺序。你知道吗
图形中的某些对象的生成器由scon直接分配,而不是通过SConstruct/SConscripts。你知道吗
是否希望此回退生成器在其他生成器运行并失败后运行?或者这只是针对系统没有其他指定构建器的目标?你知道吗
相关问题 更多 >
编程相关推荐