mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-03-27 01:12:18 +08:00
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>
62 lines
2.4 KiB
Bash
Executable File
62 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
mkdir artifacts
|
|
cp **/**/*.px4 artifacts/ 2>/dev/null || true
|
|
cp **/**/*.elf artifacts/ 2>/dev/null || true
|
|
cp **/**/*.deb artifacts/ 2>/dev/null || true
|
|
for build_dir_path in build/*/ ; do
|
|
build_dir_path=${build_dir_path::${#build_dir_path}-1}
|
|
build_dir=${build_dir_path#*/}
|
|
mkdir -p artifacts/$build_dir
|
|
find artifacts/ -maxdepth 1 -type f -name "*$build_dir*"
|
|
# Airframe (NuttX: build root, SITL: docs/ subdirectory)
|
|
airframes_src=""
|
|
if [ -f "$build_dir_path/airframes.xml" ]; then
|
|
airframes_src="$build_dir_path/airframes.xml"
|
|
elif [ -f "$build_dir_path/docs/airframes.xml" ]; then
|
|
airframes_src="$build_dir_path/docs/airframes.xml"
|
|
fi
|
|
if [ -n "$airframes_src" ]; then
|
|
cp "$airframes_src" "artifacts/$build_dir/"
|
|
fi
|
|
# Parameters
|
|
cp $build_dir_path/parameters.xml artifacts/$build_dir/ 2>/dev/null || true
|
|
cp $build_dir_path/parameters.json artifacts/$build_dir/ 2>/dev/null || true
|
|
cp $build_dir_path/parameters.json.xz artifacts/$build_dir/ 2>/dev/null || true
|
|
# Actuators
|
|
cp $build_dir_path/actuators.json artifacts/$build_dir/ 2>/dev/null || true
|
|
cp $build_dir_path/actuators.json.xz artifacts/$build_dir/ 2>/dev/null || true
|
|
# Events
|
|
mkdir -p artifacts/$build_dir/events/
|
|
cp $build_dir_path/events/all_events.json.xz artifacts/$build_dir/events/ 2>/dev/null || true
|
|
ls -la artifacts/$build_dir
|
|
echo "----------"
|
|
done
|
|
|
|
if [ -d artifacts/px4_sitl_default ]; then
|
|
# general metadata (used by Flight Review and other downstream consumers)
|
|
mkdir -p artifacts/_general/
|
|
# Airframe
|
|
if [ -f artifacts/px4_sitl_default/airframes.xml ]; then
|
|
cp artifacts/px4_sitl_default/airframes.xml artifacts/_general/
|
|
else
|
|
echo "Error: expected 'artifacts/px4_sitl_default/airframes.xml' not found." >&2
|
|
exit 1
|
|
fi
|
|
# Parameters
|
|
cp artifacts/px4_sitl_default/parameters.xml artifacts/_general/
|
|
cp artifacts/px4_sitl_default/parameters.json artifacts/_general/
|
|
cp artifacts/px4_sitl_default/parameters.json.xz artifacts/_general/
|
|
# Actuators
|
|
cp artifacts/px4_sitl_default/actuators.json artifacts/_general/
|
|
cp artifacts/px4_sitl_default/actuators.json.xz artifacts/_general/
|
|
# Events
|
|
if [ -f artifacts/px4_sitl_default/events/all_events.json.xz ]; then
|
|
cp artifacts/px4_sitl_default/events/all_events.json.xz artifacts/_general/
|
|
else
|
|
echo "Error: expected 'artifacts/px4_sitl_default/events/all_events.json.xz' not found." >&2
|
|
exit 1
|
|
fi
|
|
ls -la artifacts/_general/
|
|
fi
|