add support to create deb packages using CMake CPack; add support to generate a binary tarball;

3.0-rcon_maint
Bryan Biedenkapp 3 years ago
parent 76a73e1678
commit 37e7bbbeca

@ -250,11 +250,15 @@ option(CROSS_COMPILE_RPI_ARM "Cross-compile for (old RPi) 32-bit ARM" off)
set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
set(ARCH amd64)
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE amd64)
message(CHECK_START "Cross compiling for 32-bit ARM")
if (CROSS_COMPILE_ARM)
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
set(ARCH arm)
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE arm)
message(CHECK_PASS "yes")
else ()
message(CHECK_PASS "no")
@ -263,6 +267,8 @@ message(CHECK_START "Cross compiling for 64-bit ARM")
if (CROSS_COMPILE_AARCH64)
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
set(ARCH arm64)
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE arm64)
message(CHECK_PASS "yes")
else ()
message(CHECK_PASS "no")
@ -271,6 +277,8 @@ message(CHECK_START "Cross compiling for (old RPi) 32-bit ARM")
if (CROSS_COMPILE_RPI_ARM)
set(CMAKE_C_COMPILER /opt/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER /opt/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++)
set(ARCH armhf)
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE armhf)
message(CHECK_PASS "yes")
else ()
message(CHECK_PASS "no")
@ -290,6 +298,7 @@ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g -O3 -Wall -std=c++11
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
set(CMAKE_INSTALL_PREFIX "/opt/dvm")
set(CMAKE_INSTALL_PREFIX_TARBALL "tar_build")
set(GIT_VER "")
set(GIT_VER_HASH "")
@ -306,6 +315,25 @@ add_executable(dvmhost ${dvmhost_SRC})
target_include_directories(dvmhost PRIVATE .)
target_link_libraries(dvmhost PRIVATE Threads::Threads util)
set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME "dvmhost")
set(CPACK_DEBIAN_PACKAGE_NAME "dvmhost")
set(CPACK_PACKAGE_VENDOR "DVMProject")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "The DVM Host software provides the host computer implementation of a mixed-mode DMR, P25 and/or NXDN or dedicated-mode DMR, P25 or NXDN repeater system that talks to the actual modem hardware. The host software; is the portion of a complete Over-The-Air modem implementation that performs the data processing, decision making and FEC correction for a digital repeater.")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "DVMProject Authors")
set(CPACK_DEBIAN_PACKAGE_VERSION "3.00")
set(CPACK_DEBIAN_PACKAGE_RELEASE "0")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/dvmproject")
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
"${CMAKE_CURRENT_SOURCE_DIR}/debian/postinst;${CMAKE_CURRENT_SOURCE_DIR}/debian/postrm")
set(CPACK_DEBIAN_FILE_NAME ${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb)
include(CPack)
# dvmcmd project
project(dvmcmd)
find_package(Threads REQUIRED)
@ -332,13 +360,28 @@ target_include_directories(dvmtests PRIVATE .)
endif (ENABLE_TESTS)
# dvmhost/dvmcmd install
install(TARGETS dvmhost DESTINATION bin)
install(TARGETS dvmcmd DESTINATION bin)
install(TARGETS dvmhost DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(TARGETS dvmcmd DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(FILES config.example.yml iden_table.dat RSSI.dat rid_acl.example.dat tg_acl.example.dat DESTINATION ${CMAKE_INSTALL_PREFIX})
install(PROGRAMS start-dvm.sh stop-dvm.sh dvm-watchdog.sh stop-watchdog.sh DESTINATION ${CMAKE_INSTALL_PREFIX})
install(CODE "execute_process(COMMAND mkdir -p /opt/dvm/log || true)")
install(CODE "execute_process(COMMAND mkdir -p /opt/dvm/log)")
install(CODE "execute_process(COMMAND bash \"-c\" \"sed -i 's/filePath: ./filePath: \\\\/opt\\\\/dvm\\\\/log\\\\//' /opt/dvm/config.example.yml\")")
install(CODE "execute_process(COMMAND bash \"-c\" \"sed -i 's/activityFilePath: ./activityFilePath: \\\\/opt\\\\/dvm\\\\/log\\\\//' /opt/dvm/config.example.yml\")")
install(CODE "execute_process(COMMAND bash \"-c\" \"sed -i 's/file: iden_table.dat/file: \\\\/opt\\\\/dvm\\\\/iden_table.dat/' /opt/dvm/config.example.yml\")")
install(CODE "execute_process(COMMAND bash \"-c\" \"sed -i 's/file: rid_acl.dat/file: \\\\/opt\\\\/dvm\\\\/rid_acl.dat/' /opt/dvm/config.example.yml\")")
install(CODE "execute_process(COMMAND bash \"-c\" \"sed -i 's/file: tg_acl.dat/file: \\\\/opt\\\\/dvm\\\\/tg_acl.dat/' /opt/dvm/config.example.yml\")")
# custom target to generate a tarball
add_custom_target(tarball
COMMAND rm -rf ${CMAKE_INSTALL_PREFIX_TARBALL}
COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/log
COMMAND touch ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/log/INCLUDE_DRIECTORY
COMMAND cp -v dvmhost ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp -v dvmcmd ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/bin
COMMAND cp ../*.sh ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm
COMMAND chmod +x ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm/*.sh
COMMAND cp -v ../config*.yml ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm
COMMAND cp -v ../*.dat ${CMAKE_INSTALL_PREFIX_TARBALL}/dvm
COMMAND cd ${CMAKE_INSTALL_PREFIX_TARBALL} && tar czvf ../dvmhost_1.0.0_${ARCH}.tar.gz *
COMMAND rm -rf ${CMAKE_INSTALL_PREFIX_TARBALL})

5
debian/changelog vendored

@ -1,5 +0,0 @@
dvmhost (1.0.0-1) UNRELEASED; urgency=medium
* Initial release.
-- MAINTAINER <gatekeep@deb-lx-fuel> Fri, 11 May 2018 09:13:00 -0400

1
debian/compat vendored

@ -1 +0,0 @@
10

11
debian/control vendored

@ -1,11 +0,0 @@
Source: dvmhost
Maintainer: Bryan Biedenkapp <gatekeep@deb-lx-fuel>
Section: misc
Priority: optional
Standards-Version: 3.9.2
Build-Depends: debhelper (>= 9)
Package: dvmhost
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Digital Voice Modem Host

1
debian/copyright vendored

@ -1 +0,0 @@
DVMProject Developers

22
debian/rules vendored

@ -1,22 +0,0 @@
#!/usr/bin/make -f
install_root = /opt
build_root = $$(pwd)/debian/dvmhost
%:
dh $@ --with=systemd
override_dh_installinit:
dh_systemd_enable -pdvmhost --name=dvmhost linux/dvmhost.service
dh_installinit -pdvmhost --no-start --noscripts
dh_systemd_start -pdvmhost --no-restart-on-upgrade
override_dh_systemd_start:
echo "Not running dh_systemd_start"
override_dh_auto_install:
dh_auto_install
mkdir -p $(build_root)/opt/dvm || true
mkdir -p $(build_root)/opt/dvm/bin || true
mkdir -p $(build_root)/opt/dvm/log || true
cp -Rv $(install_root)/dvm $(build_root)/opt

@ -1 +0,0 @@
3.0 (quilt)

@ -1,4 +0,0 @@
tar-ignore = ".vscode"
tar-ignore = ".git"
tar-ignore = ".gitignore"
tar-ignore = ".gitattributes"
Loading…
Cancel
Save

Powered by TurnKey Linux.