见附件PPT.
具体方案
- 构建描述
- 依赖分析
- 增量构建
- Build in Cloud
全新的构建体系:
* 确定性 (deterministic, hermetic)
** 同样的输入和动作,一定要产生同样的输出
** 各种优化才有可能
*** 增量构建,并行构建,缓存
* 和Makefile相比:
** 构建描述分布到每个package
** 每个rule描述的是输入文件和输出类型,输出文件和构建动作是隐含的(推导出来的)
** 做什么,而不是怎么做(汇编和高级语言的区别)
** Content-based, not timestamp-based