2009-02-11 4 views
9

Для моего процесса сборки C++ я использую Bakefile, хороший генератор Makefile, который позволяет вам указывать цели сборки в XML и может генерировать с него различные файлы Makefile или файлы проекта. Он отлично работает, и я использую его для создания сценариев GNU autotools.Генераторы Makefile: premake vs bakefile?

Теперь я слышал о Premake, который, похоже, похож на функциональность. Вы указываете свои цели в Lua, и соответственно генерирует Makefiles.

Кто-нибудь знает различия между Bakefile и Premake? У кого-нибудь есть опыт работы с обоими? Premake кажется более поздним и более активным развитием?

XML-анализатор ticpp использует Premake, но для его загрузки вам необходимо скачать premake, прежде чем создавать ticpp. Разве они не могут предварительно генерировать Makefile для разных систем, поэтому вам не нужно сначала загружать и устанавливать premake?

Примечание: Я знаю, что есть различные SO темы о том, что лучший инструмент сборки, и, как правило, ответ CMake, SCons или Jam. Тем не менее, меня интересует то, что мои пользователи не будут загружаться до того, как они построят мой проект.

+0

> Тем не менее, меня интересует то, что мои пользователи не будут загружаться до того, как они построят мой проект. Scons и Cmake (не уверен в Jam) также генерируют Makefile. –

+0

Но, они генерируют весь беспорядок в autotools? Просто создать Makefile недостаточно. Кроме того, я думаю, что с CMake и друзьями вы можете создавать Makefile для определенной системы, только если вы находитесь в такой системе. – Frank

+0

waf http://code.google.com/p/waf/ разработан, чтобы быть достаточно маленьким, чтобы добавить его в свой ptoject, а не отдельную загрузку. – Mark

ответ

8

Да, Premake позволяет вам создавать Makefile (или решение Visual Studio или ...), которое вы затем можете распространять, если хотите. Сам Premake включает в себя предварительно созданные make-файлы в своих исходных пакетах.

Загрузка и запуск Premake на целевой машине позволяет настроить make-файл либо путем автоматического анализа системы, либо вручную с помощью флагов командной строки. Для некоторых проектов это эффективный компромисс, но это не требуется.

9

Не совсем ответ, но я всем сердцем рекомендую premake4, это фантастика.

+1

Поймал себя через боль CMake, но потом я увидел premake4, и моя жизнь была хорошей снова. – Skurmedel

1

После использования как Premake 4, так и new version of Bakefile кажется, что они предназначены для разных вариантов использования.

  • Bakefile ориентирован на то, что вы хотите: сгенерируйте файлы сборки локально, а затем распределите свой проект с ними. У меня был большой опыт работы с этим инструментом.
  • Premake больше похож на CMake: создание локального make-файла. Иногда у вас много модных конфигураций, которые нужно запускать на целевой машине. Bakefile позволяет выполнить это с помощью плагинов, но он может стать беспорядочным. Тем не менее, вы можете предварительно сгенерировать файлы.

Для вашего использования я бы рекомендовал Bakefile. Похоже, вам ничего не нужно.

Смежные вопросы