Просто чтобы начать работу, я установил cmake на все библиотеки, чтобы приложения могли найти их в файловой системе. Заголовки устанавливаются в / usr / local / include и встраиваются в / usr / local / lib. Это плохо делать?
Нет, это не плохо, но ваша сборка должна воспроизводить ресурсы с нуля. Такие вещи, как переносимость и исправление ошибок сборки, станут проблемой, если эти вещи необходимо предварительно установить в системе вне процесса сборки. Если вы можете сделать это другими способами, как вы упомянули, я бы предложил этот путь, но если это сделает вашу сборку намного длиннее, это то, что вам нужно почувствовать. Моя идеология заключается в том, что все должно быть перенесено на новую машину Jenkins со свежей установкой в мгновение ока, опять же, это всегда не достижимо, но есть к чему стремиться.
Поскольку я собираюсь использовать Дженкинс, я не могу гарантировать, что
cmake может найти исходный каталог или каталог сборки. Конечно могу сказать
Дженкинс строить проекты в порядке (или, по крайней мере, построить
зависимости в первую очередь). Если обновление библиотеки нарушает здание
другой проект, тогда я думаю, что это будет кому-то с 3/4 остроумия
чтобы определить это.
Ну, одна из вещей, которые я делаю во взаимозависимых заданиях, заключается в том, что при успешном построении одного задания запускается задание, которое зависит от него. Так, например, если A зависит от B, а A терпит неудачу, B никогда не будет запущен, и тот, кто создал проблему в сборке A, будет отвечать за нее и так далее. Это предотвращает каскадный эффект неработающей сборки, которая была вызвана нарушенной зависимостью. Я бы посоветовал вам хранить файлы в конкретной сборке в его папке заданий и указывать для зависимости расположение необходимых файлов. Снова держите ваши сборки отдельно и чистыми.
Я также оцениваю JIRA для отслеживания проблем.
Я настоятельно рекомендую JIRA в качестве системы отслеживания проблем для компании; Возможно, вы захотите взглянуть на этот плагин Jenkins для интеграции. Если вы используете git, и вы не против разместить свой код вне сайта, я бы также сделал GitHub.
Удачи, ты, кажется, на правильном пути.