feat(boards/modalai/voxl2): add Debian packaging framework

Add a scalable .deb packaging framework for VOXL2, built on the
existing cmake/package.cmake CPack infrastructure. The framework
handles multi-processor boards by having the POSIX (_default) build
own the .deb and pull in the companion SLPI build's artifacts.

Board-specific files:
- cmake/package.cmake: CPack variable overrides (name, deps, version)
- cmake/install.cmake: install() rules for all .deb contents
- debian/postinst: px4-* symlinks, DSP signature, directory setup
- debian/prerm: service stop, symlink cleanup
- debian/voxl-px4.service: systemd unit (after sscrpcd)

Infrastructure changes:
- cmake/package.cmake: hook for board-specific CPack overrides
- platforms/posix/CMakeLists.txt: hook for board install.cmake
- Makefile: %_deb pattern rule (build _default, then cpack -G DEB)
- CI: auto-discover _deb targets, collect .deb artifacts, upload
  to GitHub Releases

Future boards: add cmake/package.cmake + cmake/install.cmake and
CI discovers it automatically. No new file formats or tools needed.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
Ramon Roche
2026-03-14 08:41:21 -07:00
parent 9077f55f85
commit e219637d5d
13 changed files with 576 additions and 2 deletions
+9 -1
View File
@@ -80,7 +80,8 @@ target_link_libraries(px4 PRIVATE uORB)
# install
#
# TODO: extend to snapdragon
# Generic install rules (skipped when board provides its own install.cmake)
if(NOT EXISTS "${PX4_BOARD_DIR}/cmake/install.cmake")
# px4 dirs
install(
@@ -94,6 +95,8 @@ install(
USE_SOURCE_PERMISSIONS
)
endif() # NOT board install.cmake
# Module Symlinks
px4_posix_generate_symlinks(
MODULE_LIST ${module_libraries}
@@ -112,6 +115,11 @@ if(EXISTS "${PX4_BOARD_DIR}/cmake/upload.cmake")
include(${PX4_BOARD_DIR}/cmake/upload.cmake)
endif()
# board defined install rules for .deb packaging
if(EXISTS "${PX4_BOARD_DIR}/cmake/install.cmake")
include(${PX4_BOARD_DIR}/cmake/install.cmake)
endif()
# board defined link libraries
if(EXISTS "${PX4_BOARD_DIR}/cmake/link_libraries.cmake")
include(${PX4_BOARD_DIR}/cmake/link_libraries.cmake)