Проект CMake или Waf для D

Мы ищем подходящий инструмент для создания графического пользовательского приложения, написанного в D (с использованием инструментария Qt), состоящего из нескольких собственных библиотек, с использованием сторонних C-lib (s). Он должен основываться на Linux (собственная разработка) и Mac, а также на Windows. Мы можем принять Code:: Blocks как IDE.

У Waf уже есть поддержка языка D, тогда как CMake просто получает его cmaked2.

CMake использует специальный язык, а Waf - чистый Python... Otoh, CMake, через CPack, может создавать пакеты в нескольких форматах, а также для установщика GUI, например. Windoze.

Любые про/минусы и что бы вы использовали?

Мы исключили Scons для скоростных причин и autoconf, поэтому, пожалуйста, советьте только CMake/waf.

Обновление:. Хотя мы не получили никакого ответа здесь, мы проводили исследования в других местах, делали некоторые чтения и тестирования и решили использовать Waf (1.6. релиз не за горами).

Ответы

Ответ 1

Waf очень быстрый и был выбран в качестве системы сборки для Samba (http://samba.org/). Он также используется многими проприетарными проектами, потому что он позволяет вам делать сумасшедшие вещи, которые невозможны в Make/CMake.

Ответ 2

Я бы/использовал CMake

Я видел, как CMake использовался во многих других местах, кроме Waf. Самое главное, что проект KDE теперь использует CMake.

Я провел некоторое исследование поиска google-кода:
есть 2,097 файла wscript в различных проектах с открытым исходным кодом
по сравнению с 36,914 CMakeLists.txt.

Итак, CMake определенно более популярен.

Я также попытался использовать тенденции google, чтобы узнать, какая из них получила больше сцепления с CMake или Waf. Я не был успешным, так как Waf является слишком общим в терминах (т.е. W ife A cceptance F), а "Waf build" doesn ' t отображается в трендах google вообще.

Известно, что у Scons есть проблемы с производительностью. Поскольку Waf - это выведенный Scons, я беспокоюсь о его производительности.

Наконец, CMake имеет ужасный синтаксис, а Waf имеет красивый синтаксис. Поскольку вы идете с D, похоже, что вы готовы идти по проторенному пути для превосходных инструментов. В этом случае Waf может быть идеально подходящим.