【问题标题】:CMake or Waf for D projectD 项目的 CMake 或 Waf
【发布时间】:2011-04-23 04:35:09
【问题描述】:

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

Waf 已经支持 D 语言,而 CMake 刚刚收到它cmaked2

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

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

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

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

【问题讨论】:

  • 天哪。这是第 200 个带有 D 标签的问题。 :)
  • 我们可以用某种图表来显示 D-tag 问题的增长吗?我希望它看起来是指数级的。

标签: build-process build-automation cmake d waf


【解决方案1】:

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

【讨论】:

  • 什么疯狂的事情?是好疯子,还是坏人疯子?
  • waf 为您提供了 python 的强大功能,文档很棒,并且存在大量用于常见任务的用例(例如 glib/gtk 绑定等),我会随时使用它,它是闪电般的速度
【解决方案2】:

我会/确实使用 CMake

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

我对谷歌代码搜索做了一些研究:
各种开源项目中都有2,097 wscript文件
36,914 CMakeLists.txt相比。

所以 CMake 肯定更受欢迎。

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

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

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

【讨论】:

  • 就性能而言,你见过这个基准测试:tinyurl.com/9chgax 吗?是的,我更喜欢好的工具和花时间来磨练我的 Python 技能,而不是学习晦涩难懂的脚本语言。
  • 这些基准确实提供了丰富的信息。这让我们希望 CMake 有一个 bjam 生成器。
  • 我在几个项目中使用过 waf,根据我的经验,它非常快。
  • @gour CMake 具有宏语言而不是脚本语言。
  • @9emE0iL18gxCqLT "CMake 有自己的基本脚本语言..." (cmake.org/Wiki/CMake/Language_Syntax) ;)
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多