我正在考虑用 C + + 开始一个新项目——最初只用我自己的时间——并且我正在研究可用的构建系统。答案似乎是“很多,而且他们都很糟糕”。
我特别需要的功能是:
现在,我知道我可以做1-4这些使用 CMake 和 Autotools 足够容易。可能还有 SCons 和 Waf 还有其他几个人。问题是,我从来没有想出如何正确地使用它们来生成代码——也就是说,在构建过程首次运行之前不存在的源文件,所以构建系统必须能够将源文件转换成可执行代码,但是在构建开始之前实际上并不知道。(ASN1C 特别生成几十个头文件和源文件,这些文件必须能够一起工作,实际生成的文件集取决于你的 asn 文件的内容)还有一个事实是,这些都不是特别容易维护-CMake 和 Autotools 有自己的庞大的脚本集,你需要管理他们的工作,和 Waf 和 Scon 要求任何人与他们一起工作有体面的 Python 知识(我不)与他们一起工作...
那么,对于这种情况,建议使用什么样的构建系统呢?或者我现在只能使用 make 文件和 shell 脚本?