C项目的CMake或Waf

gou*_*our 13 build-automation build-process d cmake waf

我们正在寻找适当的构建工具,用于在D(使用Qt工具包)中编写桌面GUI应用程序,该工具包由几个本地库组成,使用第三方C-lib.它必须建立在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.发布就在附近).

小智 9

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

  • 什么样的疯狂的事情?好疯狂,还是坏疯狂疯狂? (5认同)
  • waf为你提供了python的强大功能,docs很棒,并且为一些常见的任务存在大量的用例(例如glib/gtk绑定等等)我随时都可以使用它,它闪电般快速 (2认同)

def*_*ode 5

我会/确实使用CMake

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

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

所以CMake绝对更受欢迎.

我也尝试使用谷歌趋势来看看哪些正在获得更多的牵引力CMake或Waf.我没有成功,因为Waf在学期过于笼统(即W ife A cceptance F actor),而且"Waf build"根本没有出现在谷歌趋势中.

众所周知,Scons有可怕的性能问题.由于Waf是Scons派生的,我担心它的表现.

最后,CMake的语法很糟糕,Waf语法很漂亮.因为你和D一起去,看起来你似乎愿意走出优秀工具的道路.在那种情况下,Waf可能是最合适的.

  • 就性能而言,你看过这个基准:http://tinyurl.com/9chgax?是的,我更喜欢漂亮的工具和投入时间来刷我的python技能,而不是学习晦涩的脚本语言. (5认同)