Какая система сборки имеет лучшую поддержку для межплатформенных сборок драйверов, библиотек и графического интерфейса? - PullRequest
3 голосов
/ 11 декабря 2008

Каким будет лучший выбор системы сборки для многоплатформенного проекта, состоящего из более чем миллиона строк, который производит драйверы, библиотеки, инструменты командной строки, графические интерфейсы и пакеты установки ОС для всех основных ОС, используя как GNU, так и Наборы инструментов Microsoft?

Наш исходный код в основном C, с Python, C # и GNU makefile, и немного C ++ и bash. Он находится в основном в одном репозитории, но мы передаем исходный код различным сторонним организациям, у каждого из которых есть свои репозитории исходного кода. Существует также некоторая заинтересованность в ускорении сборки, что может привести к разделению проекта.

В настоящее время мы используем смесь GNU make, bash, python и Microsoft DDKBUILD. Основные проблемы заключаются в том, что мы поддерживаем сложный набор скриптов поверх make и предпочли бы использовать сторонние инструменты (предпочтительно с открытым исходным кодом), а Cygwin не является надежным в Windows (например, fork не всегда возможен) ), и что наша текущая система сборки не собирает и не устанавливает цепочку инструментов, поэтому она уязвима для изменений версии цепочки инструментов.

Ответы [ 6 ]

4 голосов
/ 10 апреля 2009

Я голосую за CMake, как инструмент мета-сборки, который действительно переписывает систему сборки KDE4 с нуля - и делаю KDE4 теперь кроссплатформенным рабочим столом, который даже работает на WindowsCE!

CMake является носителем, портирующим KDE4 на любую ОС на Земле - путем генерации Makefile (или vcprojs в случае Windows) для примерно 40 ОС с относительными цепочками инструментов!

1 голос
/ 29 апреля 2009

SCons - это кроссплатформенная система сборки, реализованная на Python. Мы используем его для построения нашего кода на трех платформах. Он может автоматически определять ваши инструменты сборки, но вы также можете добавить произвольный код Python в ваш скрипт сборки. Это также позволяет вам отделить настройки вашей среды от описания структуры вашего проекта, что является отличной возможностью для повторного использования ваших сценариев buidl в разных средах. Помимо создания вашего проекта, он также может генерировать файлы проекта Visual Studio.

1 голос
/ 03 января 2009

Вы можете посмотреть на Круиз . Он построен на Java, поэтому он будет работать на любой платформе, которая поддерживает это. На разных машинах также может быть несколько агентов сборки, которые могут выполнять разные задачи на разных платформах. Thoughtworks все еще строит его, поэтому некоторые функциональные возможности отсутствуют, но это может быть хорошим вариантом, поскольку вы ищете истинные кроссплатформенные возможности.

1 голос
/ 31 декабря 2008

У вас должно быть CMake в вашем списке альтернатив для расследования. CMake - это метаинструмент, то есть он генерирует входные данные для выбранного вами инструмента сборки (GNU make, Visual Studio и т. Д.). Я настоятельно рекомендую это.

1 голос
/ 11 декабря 2008

Dickson,

Является ли ваша сборка в основном монолитной или вы хотите собрать несколько библиотек отдельно и собрать их в более крупное приложение? Если межпроектные зависимости имеют большое значение, ваш выбор быстро ограничивается. AnthillPro делает это хорошо, и я думаю, TeamCity имеет некоторую поддержку интеграции Ivy. Из того, что вы говорите, похоже, что это не является абсолютной необходимостью, но может помочь в ускорении сборки. Это, безусловно, стратегия, которую многие команды эффективно выполняют.

Поскольку вы смотрите на кросс-платформенные (я полагаю, несколько машин) сборки, большинство инструментов с открытым исходным кодом, кроме Hudson, исключены.

Матрица сравнения серверов сборки размещена нашими друзьями на Thoughtworks здесь: confluence.public.thoughtworks.org / display / CC / CI + Feature + Matrix

Удачи.

1 голос
/ 11 декабря 2008

JetBrains TeamCity в целом работает очень хорошо, поэтому стоит иметь в списке eval.

ThoughtWorks Cruise также находится в том же пространстве. В то время как его v1, он прибывает из стабильной, которая была вокруг некоторое время.

В Team Foundation Server нет ничего, что могло бы обязательно подсчитать это для вашей ситуации, но из коробки это может быть более ориентированным на MS-shop, чем два других, о которых я упоминал.

В качестве общего комментария, с вашим уровнем разнообразия, вы определенно хотите испытать то, что вы хотите использовать - просто потому, что что-то поддерживается в виде галочки на поле, не означает, что оно подходит тому, что вы ищу.

...