launchpad.net: несколько зависимостей в одном большом проекте...?

У меня есть большой проект, который содержит много библиотек, от которых зависит основной двоичный файл. Я хотел бы знать, как правильно обращаться с этим в панели запуска, чтобы я мог собрать библиотеки, затем основной двоичный файл и предложить каждый пакет Debian на ppa.

Вы можете увидеть этот проект по адресу lp: snapcpp ( https://code.launchpad.net/snapcpp/). В snacpp у нас есть "snapwebsites", система C++ CMS, которая подключается к базе данных Cassandra через нашу библиотеку "libQtCassandra"."Snapwebsites" зависит от libQtCassandra, как это делает libltd и другие. Каждая из этих библиотек должна представлять собой отдельные пакеты Debian. Каждый проект имеет свою собственную папку "debian", но в настоящее время нет корневой папки debian.

Как я могу заставить это работать на панели запуска, которая требует корневой папки debian? Нужно ли создавать проект debian в корне, который перечисляет каждую зависимость? Если нет, нужно ли разбивать каждый проект на отдельную ветку с помощью bzr? Если я сделаю последнее, как я могу вызвать эти зависимые базы данных для сборки (другими словами, как мне сообщить рецепту для моментальных сайтов, что на нем должны быть установлены libQtCassandra и его пакеты зависимостей)?

Спасибо!

1 ответ

Решение

Решение, которое я обнаружил самостоятельно, заключалось в использовании команды рецепта "nest-part", которая позволяет вам извлечь одну папку из ветви bzr и отобразить ее в своем проекте. Однако он не может отображаться в корне вашей ветви.

Я создал ветку, содержащую только информацию об упаковке, и файл CMakeLists.txt, содержащий "add_subdirectory(src)". Затем я сопоставляю основную ветвь кода (lp:snapcpp), но только рассматриваемый проект. Например, вот рецепт для проекта "managed_vars" в snapcpp:

# bzr-builder format 0.3 deb-version {debupstream}+{revno}
lp:~snapcpp/snapcpp/controlled_vars
nest-part src lp:snapcpp controlled_vars src

В каждом подпроекте должна быть ветка с информацией об упаковке, но это единовременная проблема.

Другие вопросы по тегам