我个人构思的比较理想的构建工具是这样的:
- 能生成 self contained 的配置脚本 (POSIX shell或者C),打包者不需要再装构建工具
- 支持多种语言和工具链,可以为自定义的工具链添加模块
- 只编写构建规则,不需要 Makefile 模板,打包者运行配置脚本可以直接生成 ninja 构建文件
而 autotools 只满足第一条(可能也满足第二条),CMake/meson 只满足第二(meson 好像不能支持 C/C++/Rust/Java 之外的语言,模块要用 Python 定义)、三条。手写 configure 脚本也许可以满足一、三条,但难度可能很大。我暂时还没想好怎么造一个这样的工具。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: cmake 生成的 makefile 调用的是 windows cmd 的命令,而不是 rm, ed 那些 *nix 的命令,能够编译自动化测试代码。还能够生成 ninja 这些比较现代一些的 make 工具编译脚本。还有一些辅助的功能,比如生成 json 给 IDE,方便 IDE 管理工程文件。
: KDE/GNOME 这些项目纷纷采用 cmake/meson 这些新一代 make 工具是有道理的。
--
FROM 103.90.178.*