Генераторы make-файлов: premake vs bakefile? - PullRequest
11 голосов
/ 11 февраля 2009

Для моего процесса сборки C ++ я использую Bakefile , симпатичный маленький генератор Makefile, который позволяет вам указывать ваши цели сборки в XML, и он может генерировать различные Make-файлы или файлы проекта из него. Он работает нормально, и я использую его для генерации сценариев автоинструментов GNU.

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

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

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

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

Ответы [ 3 ]

11 голосов
/ 08 января 2010

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

9 голосов
/ 24 июня 2009

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

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

2 голосов
/ 11 февраля 2015

После использования как Premake 4, так и новой версии Bakefile кажется, что они нацелены на разные варианты использования.

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

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

...