diff --git a/Makefile b/Makefile index 304f90edaf..e93c92a1bd 100644 --- a/Makefile +++ b/Makefile @@ -264,6 +264,26 @@ px4fmu_firmware: \ check_px4_fmu-v5x_default \ sizes +# Create a one-file AppImage for PX4 SITL +.PHONY: AppImage +appimage: build/px4_sitl_default/bin/px4 build/px4_sitl_default/romfs_files.tar + @$(MAKE) px4_sitl_default # ensure the SITL binary & romfs tar are up-to-date + @$(RM) -rf build/px4.AppDir + @mkdir -p \ + build/px4.AppDir/usr/bin \ + build/px4.AppDir/usr/share/px4/romfs/etc \ + build/px4.AppDir/usr/share/px4/romfs/bin \ + build/px4.AppDir/usr/share/applications \ + build/px4.AppDir/usr/share/icons/hicolor/scalable/apps + @cp build/px4_sitl_default/bin/px4 build/px4.AppDir/usr/bin/ + @tar xf build/px4_sitl_default/romfs_files.tar -C build/px4.AppDir/usr/share/px4/romfs/etc + @cp build/px4_sitl_default/bin/px4-* build/px4.AppDir/usr/share/px4/romfs/bin/ + @cp Tools/appimage/px4.desktop build/px4.AppDir/ + @cp Tools/appimage/px4.svg build/px4.AppDir/ + @cp Tools/appimage/AppRun build/px4.AppDir/ + @chmod +x build/px4.AppDir/AppRun + @cd build && appimagetool px4.AppDir + misc_qgc_extra_firmware: \ check_nxp_fmuk66-v3_default \ check_mro_x21_default \ diff --git a/Tools/appimage/AppRun b/Tools/appimage/AppRun new file mode 100755 index 0000000000..6c827db9bd --- /dev/null +++ b/Tools/appimage/AppRun @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -e + +export LD_LIBRARY_PATH="$APPDIR/usr/lib:$LD_LIBRARY_PATH" +WORKDIR=$(mktemp -d) +cp -a "$APPDIR/usr/share/px4/romfs/." "$WORKDIR" +export PATH="$WORKDIR/bin:$WORKDIR:$PATH" +exec "$APPDIR/usr/bin/px4" -w "$WORKDIR" "$@" diff --git a/Tools/appimage/px4.desktop b/Tools/appimage/px4.desktop new file mode 100644 index 0000000000..a5ce2f43c7 --- /dev/null +++ b/Tools/appimage/px4.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=Application +Name=PX4 Autopilot SITL +Exec=px4 %F +Icon=px4 +Categories=Development; diff --git a/Tools/appimage/px4.svg b/Tools/appimage/px4.svg new file mode 100644 index 0000000000..874817adac --- /dev/null +++ b/Tools/appimage/px4.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + +