0
假设我有目标A
,只有在B
或C
已经构建时才能构建。建筑物C
比建筑B
贵得多。多种优先排序的方式来满足依赖关系
如何编写一个最佳的SConstruct
文件,当我要求它建立A
时,它满足以下约束条件。
- 如果任
B
或C
存在并且UPTODATE,直接建立A
- 如果既没有
B
也不C
存在并且UPTODATE,第一建立B
然后生成A
如果scons
不提供这个能力,还有其他的构建工具提供吗?
如果C总是比B昂贵得多,我会认真考虑永远不要构建C。使B成为A的唯一依赖关系,并且根据对上面给出的问题的描述,您应该可以做得很好...... – dirkbaechle
当然,当我可以等待时,还有其他一些非常重要的构建C的依据。 B一建立就可以开始工作。但是我只能确定当C被构建时我的工作是正确的。 –
然后你的描述有点误导是不是?为了构建“A”的正确版本,您不必提及最终需要用“C”构建的任何地方。请记住,SCons的首要任务就是提供正确的版本...最后,Build系统应该如何知道*什么时候需要最终的“A”(=使用C),还是您仍然可以开始初步工作基于不正确的“A”(=使用B)? – dirkbaechle