2012-04-10 3 views
2

В настоящее время я изучаю cmake для автоматического построения на платформе Win32. Для всех исполняемых файлов и библиотек, которые я хотел бы построить, проекты Visual Studio (2008/2010) уже существуют.Нужен ли мне cmake для автоматизации сборки?

Я наткнулся на cmake, но я не уверен, действительно ли это мне нужно. Как сказано в документации, cmake генерирует VS-проекты, и тогда они могут быть построены, например. используя MSBuild.

Поскольку сами проекты allready действительно существуют (и хорошо построены через IDE или MSBuild на линии cmd), для чего мне нужен и использовать cmake? Просто для обхода папки каталога/проекта? Строить отчеты об ошибках?

С уважением, Paul

+1

Я полагаю, что вы действительно _need_ являются MSBuild и кодовой базой. Сценарий, однако, вы этого хотите. (cmake, NAnt и т. д.) Лично мне очень нравится использовать Rake для моего скриптового скрипта, хотя все, что он действительно делает, это вызов MSBuild (и MSDeploy). Но, как полноценный инструмент программирования (язык Ruby), он может создавать очень мощный скриптовый агент. – David

ответ

6

Ну, строго говоря, вам не нужно . Тем не менее, она дает вам несколько преимуществ:

  1. идиоматическому способ использовать CMake, заставляет вас использовать вне источника сборки. Можно утверждать, но я лично убежден, что они обеспечивают вам источник-репозиторий очень чистым.

  2. Вы можете поддерживать несколько версий визуальной студии (с сборками вне источника). Возможно, вам будет проще переносить ваш проект на другие компиляторы (из MinGW -> Linux GCC).

  3. С файлами find_package и config.cmake и большим количеством доступных модулей findXXX CMake упрощает «импорт» сторонних библиотек в вашу цепочку построения.

+0

Ну, сборки вне исходного кода - это что-то, но для ручного тестирования и развертывания я начинаю с использованием самой VS IDE. Все проекты есть, нет необходимости изобретать колесо (или дублировать файлы vcxproj). – PMiller

+1

Определенно нет необходимости хранить дублированные файлы. CMake заменит файлы vcxproj. Для нас CMake обеспечивает центральное место для настройки параметров проекта (не только для разных компиляторов, но и для разных версий компилятора). Сторона примечания: И да, это определенно сделало трансляцию к Linux/gcc очень простой, и я могу абсолютно порекомендовать ее изучить (начните с проекта smal). Тем не менее, «никогда» не меняет запущенную систему. –

5

Вам не нужно. Cmake полезен только в том случае, если вы пытаетесь сохранить тот же исходный код, который можно построить на нескольких платформах и компиляторах. Если вы просто строите, используя стек microsoft, вам это не нужно.

+0

Спасибо - и как бы вы выполняли сценарий обхода каталогов? Вручную или есть инструменты, которые просто делают это, пинать все, что я определяю, а затем проверять коды возврата и писать соответствующие отчеты? – PMiller

+0

Я не уверен, что вы подразумеваете под обход каталога, но я бы использовал любую из основных платформ непрерывной интеграции, таких как CruiseControl.NET или Hudson. Это, используя тот факт, что вы сказали, что можете создать его в MSBuild, и среда IDE должна предоставить вам все, что вы сейчас ищете, и платформу для других вещей в будущем. Вы просто рассказываете, как получить исходный код и указать его на файл решения или файл проекта и быть в основном там. – Alex

+0

Я имею в виду, что я просто хочу определить набор папок, где проживают один или несколько проектов VS, строить их, собирать код выхода/возврата и представлять его. Хадсон выглядит немного ориентированным на Java, посмотрит на CruiseControl.NET. – PMiller

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