对于超过一百万行的多平台项目,构建系统的最佳选择是什么,该项目使用 GNU 和 Microsoft 工具链为所有主流操作系统生成驱动程序、库、命令行工具、GUI 和操作系统安装包?
我们的源代码主要是 C,带有 Python、C# 和 GNU makefile,以及一点 C++ 和 bash。它主要驻留在一个存储库中,但我们将源代码推送给各种第三方,这些第三方都有自己的源代码存储库。保持快速构建也有一些兴趣,这可能涉及拆分项目。
目前我们混合使用 GNU make、bash、python 和微软的 DDKBUILD。主要问题是我们在 make 之上维护了一组复杂的脚本,并且更愿意使用第三方(最好是开源)工具,而且 cygwin 在 Windows 上并没有被证明是健壮的(例如,fork 并不总是可能的) ),并且我们当前的构建系统不会构建或安装工具链,因此容易受到工具链版本更改的影响。