Cook 是一个实验性的构建系统,与 ekam 非常相似,Cook 更像是一个反向生成文件:它将自动找出所需的依赖项,而非人工指定。Cook 由 C++ 编写,专注于编译 CC++。当前处于预测试阶段,探索构建系统的潜在可能性。

Cook 能完成以下功能:

  • C++ 编译

  • .o 文件中提取符号

  • 符号依赖求解

  • 将包含主符号的文件与直接依赖项进行链接

  • 支持基础的 YAML 配置文件

  • 基于 inotify 的连续构建

  • 头文件感知

未来规划功能包括:默认值、并行构建emacs 集成、自动工具文件生成依赖关系。

Cook 仅适用于基于 Linux 的系统,因为它依赖于 inotify。编写时采用 C++11 标准,需配合现代编译器(如 gccclang),并依赖 jansson 解析 YAML 配置文件。整个构建过程需要 GNU Makeautoconf 支持。