Настроить Cmake Cpack для использования debian/rules?Linux

Ответить Пред. темаСлед. тема
Anonymous
 Настроить Cmake Cpack для использования debian/rules?

Сообщение Anonymous »

У меня есть код C++ для службы Linux, для которого я использовал CPack для создания пакета .deb, который отлично собирается, а затем я запускаю make package_deb:

Код: Выделить всё

install(PROGRAMS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}
DESTINATION bin
)
install(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.service
DESTINATION /usr/lib/systemd/system
)
# ...
SET(CPACK_GENERATOR "DEB")
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "The Maintainer") #required
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
string(REPLACE "_" "-" CPACK_PACKAGE_NAME "${PROJECT_NAME}")
set (CPACK_OUTPUT_CONFIG_FILE "${CMAKE_BINARY_DIR}/BundleConfig.cmake")
include(CPack)
# ...
add_custom_target(package_deb
COMMAND "${CMAKE_CPACK_COMMAND}" "-C" "$" "--config" "${CMAKE_BINARY_DIR}/BundleConfig.cmake"
COMMAND /bin/bash ${CMAKE_CURRENT_BINARY_DIR}/post_package_deb.sh
)
Проблема в том, что установка пакета не включает и не запускает службу автоматически; это обсуждается и отвечает здесь: Автоматически включать службы systemd, установленные с помощью deb? - Unix и Linux Stack Exchange:

Вам нужны 3 вещи: правила, чтобы содержать dh $@ --with systemd, control должен содержать Build-Depends: dh-systemd, postinst содержать #DEBHELPER# и разумную текущую систему сборки [...]
Я решил эту проблему, вызвав dh_systemd_enable (чтобы служба запускалась по умолчанию) и dh_systemd_start (чтобы фактически запустить ее после установки) вручную из цели override_dh_auto_install в правилах, поэтому это выглядит так :

Код: Выделить всё

%:
dh $@ --with-systemd

override_dh_auto_install:
dh_auto_install
dh_systemd_enable || true
dh_systemd_start || true
Круто, но как мне ссылаться на debian/rules в настройке Cpack в CMakeLists.txt?
Я заметил, что CPACK_DEBIAN_PACKAGE_MAINTAINER заканчивается как поле Maintenanceer: в автоматически созданном файле управления после запуска моего make package_deb - но что мне делать с правилами , чтобы я мог использовать вышеуказанные переопределения? Я не вижу многого (Ctrl-F "/rules" - 0 результатов) в https://cmake.org/cmake/help/v3.4/module/CPackDeb.html (я также видел, что существует нечто под названием https: //gitlab.kitware.com/debian/dh-cmake, но я не могу сказать, связано ли это с моей проблемой или может ли она помочь в решении моей проблемы).

Подробнее здесь: https://stackoverflow.com/questions/784 ... bian-rules
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • В чем разница между Consumer-rules.pro и proguard-rules.pro в Android?
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между Consumer-rules.pro и proguard-rules.pro в Android?
    Anonymous » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Создайте двоичный пакет с помощью Cmake Cpack
    Anonymous » » в форуме C++
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Создайте двоичный пакет с помощью Cmake Cpack
    Anonymous » » в форуме C++
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Создайте только файл пакета tar.gz, не имея возможности установить двоичные и библиотечные файлы с помощью Cmake Cpack
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»