13

我们正在为桌面 GUI 应用程序寻找合适的构建工具,用 D 语言编写(使用 Qt 工具包),由几个本机库组成,使用 3rd 方 C-lib(s)。它必须在 Linux(本机开发)和 Mac 以及 Windows 上构建。我们可能会采用Code::Blocks作为 IDE。

Waf 已经支持 D 语言,而 CMake 只是接收它cmaked2

CMake 使用特殊语言,而 Waf 是纯 Python...Otoh,CMake,通过 CPack,可以生成多种格式的包以及用于例如 Windoze 的 GUI 安装程序。

有什么优点/缺点,你会用什么?

我们出于速度原因和 autoconf 排除了 Scons,因此,请仅针对 CMake/waf 提出建议。

更新:虽然这里没有收到任何回复,但我们在其他地方进行了研究,做了一些阅读和测试,并决定使用Waf(1.6 版本即将发布)。

4

2 回答 2

9

Waf 速度非常快,已被选为 Samba (http://samba.org/) 的构建系统。许多专有项目也使用它,因为它可以让您做在 Make/CMake 中不可能完成的疯狂事情。

于 2010-10-15T09:12:10.370 回答
5

我会/确实使用 CMake

我见过 CMake 在比 Waf 更多的地方使用。最重要的是,KDE 项目现在正在使用 CMake。

我对 google 代码搜索做了一些研究:各种开源项目中
2,097 个 wscript
文件, 而CMakeLists.txt 有 36,914 个

所以 CMake 肯定更受欢迎。

我还尝试使用 google 趋势来查看 CMake 或 Waf 哪个更受关注。我没有成功,因为 Waf 在术语上过于笼统(即 Waf A接受Factor),而且“ Waf build”根本没有出现在谷歌趋势中。

众所周知,Scons 存在严重的性能问题。由于 Waf 是 Scons 派生的,我担心它的性能。

最后,CMake 的语法很糟糕,而 Waf 的语法很漂亮。由于您选择 D ,因此您似乎愿意为更好的工具而走寻常路。在这种情况下,Waf 可能是完美的选择。

于 2010-10-13T05:32:06.783 回答