У меня небольшой проект CMake с разными типами сборки debug
и release
. Я также предоставляю пакет Debian для этого проекта. Сборка пакета Debian для release
и предоставление его в моем собственном репозитории Debian прекрасно работает.
Теперь я также хочу предоставить еще один пакет Debian для debug
из-за целей отладки с другим именем пакета. Например, мой проект называется myproject
, а пакет отладки должен быть myproject-debug
.
Я уже прочитал документацию о том, как решить эту проблему в файле debian/control
. Я хочу использовать Replaces: ...
для каждого пакета наоборот, чтобы вы могли установить только один из обоих пакетов одновременно. Таким образом, либо myproject
, либо myproject-debug
, но не одновременно, можно использовать одни и те же файлы и имена файлов, но только двоичный файл имеет больше отладочной информации и отладочных отпечатков в пакете myproject-debug
. Все остальное должно быть таким же. Одинаковое имя файла, одинаковые пути и т. Д.
Теперь проблема в том, что я не знаю, как должен выглядеть файл debian/rules
, чтобы сначала собрать пакет myproject
в папке, а затем собрать myproject-debug
с различными параметрами CMake (-DCMAKE_BUILD_TYPE=debug
) в другой папке, поэтому имена файлов могут и должны оставаться неизменными.
В документации по Debian есть это руководство по CMake , но оно не соответствует моим требованиям. Потому что в этом уроке все будет построено только в одной папке, и в этой папке есть разные файлы. Затем различные файлы .install
будут использоваться для копирования необходимых файлов в каждый пакет. Но так как у меня одно и то же двоичное имя файла для каждого пакета myproject
и myproject-debug
, этот учебник не совсем соответствует моим потребностям.
В моем файле debian/rules
уже есть следующие строки:
override_dh_auto_configure:
dh_auto_configure -- -DCMAKE_BUILD_TYPE=release
Но как мне запустить две разные сборки с двумя разными типами сборки?
Например, что-то вроде этого, чтобы разделить это:
override_dh_auto_configure_release:
dh_auto_configure -- -DCMAKE_BUILD_TYPE=release
override_dh_auto_configure_debug:
dh_auto_configure -- -DCMAKE_BUILD_TYPE=debug
И запускайте обе папки в разных папках, чтобы я мог добавить обе папки в два разных пакета.
Или, может быть, есть даже лучшее решение, которое я пока не могу себе представить?