Простая автоматизация процесса сборки в Windows - PullRequest
5 голосов
/ 29 января 2010

Я не большой поклонник таких инструментов, как Ant, но они, безусловно, полезны. В текущем проекте C ++ у меня вообще нет автоматизированного процесса сборки - я просто создаю свой рабочий каталог с помощью Visual studio, заархивирую папку / bin и отправляю ее для установки. Проект достаточно мал, это работает нормально, но я полностью уверен, что знаю проект наизнанку.

Мне нужна система, которая может выполнять такие шаги, как:

  • обновить несколько рабочих каталогов SVN до указанной версии (или по умолчанию Head)
  • запустить doxygen (или аналогичный инструмент), чтобы обновлять документы API
  • передает документы API в некоторые репозитории SVN
  • построить несколько проектов в правильном порядке
  • копировать некоторые вещи, удалять ненужные файлы
  • упаковывает файлы / папки в zip / папку, названную на основе указанной пользователем версии или найденную из файла / SVN

Бесплатно важно. Простота в использовании это другое. Windows имеет важное значение, и это не включает в себя параметры Cygwin.

Мне пришло в голову, что вы, вероятно, могли бы сделать это, используя файл .bat, это жизнеспособная опция для довольно маленького проекта (1-4 разработчика)?

Ответы [ 7 ]

4 голосов
/ 02 февраля 2010

Hudson очень прост в установке, установке и запуске и не имеет проблем при работе в среде Windows. Вам не нужно использовать его для непрерывной интеграции, он с радостью сделает сборку только тогда, когда вы скажете это.

Hudson имеет встроенную поддержку для выполнения пакетных сценариев Windows и будет рад работать с NANT или cmake через плагины. Если плагин для чего-то, что вы хотите сделать, уже не существует, вы можете довольно легко выполнить его, если это обычно можно сделать из командной строки.

Обратите внимание: проект Hudson был переименован в Jenkins

3 голосов
/ 29 января 2010

cmake является инструментом выбора для любой операционной системы в наши дни. Ничто другое не подходит близко. Вы должны напечатать высокоуровневое описание своего кода, и cmake сгенерирует решение / проекты VS, а также make-файлы для всех юнитов или cygwin.

NSIS : тонны проектов с открытым и закрытым исходным кодом используют NSIS для создания установщиков для окон - это неплохо, и сборщик можно легко запустить из командной строки - так что вы можете интегрировать с помощью cmake.

2 голосов
/ 29 января 2010

Если вы все равно используете Visual Studio (только), вы можете использовать встроенный процесс сборки в пакетном режиме (введите devenv /? в вашем cmd). Этого будет достаточно для создания вашего проекта на C ++, и он разрешит все зависимости C ++, которые являются самыми сложными.

Другие вещи, которые вы могли бы легко выполнить из пакетного скрипта.

Также, пожалуйста, прочитайте эти 2 статьи:

http://gamesfromwithin.com/the-quest-for-the-perfect-build-system

http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2

1 голос
/ 15 октября 2010

Используйте http://www.finalbuilder.com в качестве вашего сервера сборки, легко, удобно и лучше всего, без взлома XML!

1 голос
/ 02 февраля 2010

Visual Studio по-прежнему поставляется с копией Nmake , которая является классическим инструментом построения по правилам зависимости. Я могу создавать ваши проекты Visual Studio, используя devenv, а также делать много других вещей. Все, что вы можете сделать с помощью командной строки, вы можете сделать с помощью nmake. И у него довольно хороший макроязык.

1 голос
/ 02 февраля 2010

Если у вас есть запасная коробка, я бы предложил Nant и [CruiseControl.net]. Вам не обязательно использовать его для непрерывной интеграции, вы можете настроить запуск сборок [только по принуждению]. Оба с открытым исходным кодом, имеют встроенную поддержку SVN и довольно просты в использовании. Я использовал Nant & CruiseControl.Net для каждой вещи, которую вы перечислили, кроме задачи doxygen. Даже без запасной коробки я бы предложил использовать Nant для автоматизации выхода из того, что выглядит как длинный ряд ручных заданий.

1 голос
/ 29 января 2010

Я бы порекомендовал CMake:

http://www.cmake.org/

Это довольно стандартная система сборки, если вы привыкли к системам сборки на основе зависимостей.

Если вы более опытны (и любите кодировать ruby), Rake - отличная альтернатива:

http://rake.rubyforge.org/

Мартин Фаулер познакомился с инструментом здесь: http://martinfowler.com/articles/rake.html

...