a day ago
- 构建系统是定义并执行从输入到输出的转换的工具,通过缓存避免重复工作。
- 规则(或步骤)构成依赖图;输出被缓存,并在输入变化时失效,从而实现增量构建。
- 构建系统可以是进程间(生成子进程)或进程内(函数调用),其依赖图可以是应用式(静态)或单子式(动态)。
- 关键概念包括:健全性(与完整构建结果一致)、最小性(仅重运行必要规则)、提前终止和密封性(无系统依赖)。
- 确定性和可重现的构建对于可靠缓存和远程缓存(通常采用内容寻址)至关重要。
- 元构建系统(如CMake)将配置步骤与构建步骤分离,高级系统集成虚拟文件系统或追踪技术以支持进程内构建。
- 构建系统的应用范围已超越编译器,扩展到GitHub Actions、静态站点生成器和电子表格等工具。