Упаковка компонентов CMake для Debian

Проверьте файл /etc/hostname.bge0 , там может быть настроенный IP-адрес. По умолчанию имя хоста указано в этом файле, а имя ищется в / etc / inet / hosts . Из найденной записи IP-адрес используется вместе с соответствующей сетевой маской из / etc / inet / netmasks . Если сетевая запись не может быть найдена, используется значение по умолчанию для типа класса (A, B или C).

Итак, если вам нужно использовать другую маску сети для адреса класса A (10.XXX), вы должны добавить сеть в / etc / inet / netmasks , например:

10.91.0.0 255.255.252.0
1
20.05.2019, 18:07
1 ответ

Стандартный файл debhelper debain/rulesможет выглядеть следующим образом: (система сборки автоматически определяет cmake на более новых уровнях совместимости ).

%:
        dh $@    # --buildsystem=cmake  <-- older compat levels may need this

Это будет эффективно работать make install DESTDIR=debian/tmp. Но это помещает все в один пункт назначения, требуя от вас записи debian/*.installфайлов вручную, чтобы разделить их (см. dh _install (1)). Это обычный способ превратить монолитный исходный код cmake в несколько двоичных файлов, и для этого есть хорошее руководство в руководстве Debian здесь .

Тем не менее, апстрим сделал эту работу за вас, определив установки КОМПОНЕНТА.

Чтобы воспользоваться этим преимуществом, переопределите свой собственный рецепт установки, чтобы указать связь пакета/компонента:

include /usr/share/dpkg/architecture.mk

%:
        dh $@

override_dh_auto_install:
        sed -i -e 's/\-P/\-DCOMPONENT\=app1\ \-P/g' obj-$(DEB_HOST_MULTIARCH)/Makefile
        dh_auto_install --destdir=debian/app1

        sed -i -e 's/\-DCOMPONENT\=app1/\-DCOMPONENT\=app2/g' obj-$(DEB_HOST_MULTIARCH)/Makefile
        dh_auto_install --destdir=debian/app2

Корень debian/<binary_package_name>представляет /в этом двоичном пакете.

Я немного разочарован в командах sed. Я надеялся сделать это, передав -- -DCOMPONENT=app1в каталог установки dh _auto _. Вместо этого эти команды редактируют Makefile auto -, сгенерированный cmake. Это решение предполагает, что вы используете makeи что единственная строка -Pбудет в ваших командах установки (, что, похоже, имеет место для проектов, которые я проверил до сих пор ). Я рад принять изменения к этому ответу с лучшим решением.

Примечание. :Kitware (Разработчик cmake )работает над новым расширением debhelper dh -cmake , которое, похоже, сделает это еще проще. Однако в Debian 10 (buster )он еще недоступен.

2
27.01.2020, 23:41

Теги

Похожие вопросы