Есть ли система сборки для C ++, которая может управлять зависимостями выпуска?

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

Мы хотели бы изучить, существует ли система сборки, которая позволит нам управлять выпусками и автоматически извлекать зависимости. Такой инструмент существует для Java, Maven. Мне нравится механизм пакетов, репозитория и зависимостей, и я знаю, что с плагином maven-native или maven-nar мы могли бы это получить. Однако проблема в том, что мы не можем исправить исходные деревья "способом maven" - и, к сожалению (по крайней мере, maven-nar) плагинам не нравится код, который не структурирован таким образом ...

Итак, мои вопрос в том, существует ли инструмент, который удовлетворяет следующему для пакета C ++

  1. build
  2. (например, библиотеки со всеми заголовками, что-то вроде .nar)
  3. загружает пакет в "репозиторий"
  4. автоматически извлекает в необходимых зависимостях из указанного репозитория, извлеките заголовки и включите в сборки, извлеките библиотеки и линкуйте. Зависимости будут описаны в «выпуске» для этого двоичного файла - поэтому, если бы мы использовали сервер CI для создания этого «выпуска», в сценарии сборки перечислены необходимые зависимости (например, файлы pom.xml).

Я мог бы свернуть свой собственный, изменив либо сценарии make + shell, либо waf / scons с дополнительными модулями python для упаковки и управления зависимостями - однако я бы думали, что это обычная проблема и у кого-то где-то есть инструмент для этого? Или у всех своя? Или я пропустил важную функцию waf / scons или CMake?


РЕДАКТИРОВАТЬ: я должен добавить, ОС предпочтительнее, а не MS ...

6
задан Nim 10 March 2011 в 17:02
поделиться