linux appimage
This commit is contained in:
9
ToDo.desktop
Normal file
9
ToDo.desktop
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=ToDo
|
||||||
|
Comment=Lightweight Qt Todo app
|
||||||
|
TryExec=Todo
|
||||||
|
Exec=ToDo %F
|
||||||
|
Icon=ToDo
|
||||||
|
Categories=KDE;Qt;ProjectManagement;Office
|
||||||
4
ToDo.pro
4
ToDo.pro
@@ -59,9 +59,9 @@ linux-* {
|
|||||||
QMAKE_CXXFLAGS_RELEASE += -mtune=armv8.6-a+fp16+simd
|
QMAKE_CXXFLAGS_RELEASE += -mtune=armv8.6-a+fp16+simd
|
||||||
TMP_APP_ARCH = APP_ARCH=\"\\\"aarch64\\\"\"
|
TMP_APP_ARCH = APP_ARCH=\"\\\"aarch64\\\"\"
|
||||||
}
|
}
|
||||||
equals(QMAKE_HOST.arch, amd64) {
|
equals(QMAKE_HOST.arch, x86_64) || equals(QMAKE_HOST.arch, amd64) {
|
||||||
message("CPU Architecture : amd64")
|
message("CPU Architecture : amd64")
|
||||||
QMAKE_CXXFLAGS_RELEASE += -march=tigerlake
|
QMAKE_CXXFLAGS_RELEASE += -march=alderlake
|
||||||
QMAKE_CXXFLAGS_RELEASE += -mtune=intel
|
QMAKE_CXXFLAGS_RELEASE += -mtune=intel
|
||||||
TMP_APP_ARCH = APP_ARCH=\"\\\"amd64\\\"\"
|
TMP_APP_ARCH = APP_ARCH=\"\\\"amd64\\\"\"
|
||||||
}
|
}
|
||||||
|
|||||||
104
linuxdeployqt.sh
Executable file
104
linuxdeployqt.sh
Executable file
@@ -0,0 +1,104 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ARCH=$(uname --machine)
|
||||||
|
ARCH_KERNEL=$(uname -r | cut -d '-' -f 2)
|
||||||
|
ARCH="${ARCH:-x86_64}"
|
||||||
|
ARCH_KERNEL="${ARCH_KERNEL:-amd64}"
|
||||||
|
|
||||||
|
QT_PLUGINS=$(qmake6 -query QT_INSTALL_PLUGINS)
|
||||||
|
|
||||||
|
WORKSPACE_DIR="$PWD"
|
||||||
|
BUILD_DIR="$WORKSPACE_DIR/build/Desktop_Qt_6_10_3-Release"
|
||||||
|
|
||||||
|
export EXTRA_QT_MODULES="sql;"
|
||||||
|
export EXTRA_QT_PLUGINS="waylandcompositor"
|
||||||
|
export EXTRA_PLATFORM_PLUGINS='libqwayland.so;libqxcb.so;libqminimalegl.so;libqminimal.so'
|
||||||
|
export LD_LIBRARY_PATH="$APPDIR/usr/lib:$LD_LIBRARY_PATH"
|
||||||
|
|
||||||
|
if [ ! -d "$BUILD_DIR" ]; then
|
||||||
|
echo "error: bin not built" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
rm -rf $TMP_DIR
|
||||||
|
rm -rf "$BUILD_DIR/appdir"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
TMP_DIR=$(mktemp -d '/tmp/linuxdeployqt-XXXXXXX')
|
||||||
|
|
||||||
|
get_tool() {
|
||||||
|
local author="$1"
|
||||||
|
local repository="$2"
|
||||||
|
local branch="$3"
|
||||||
|
local tool_name="$4"
|
||||||
|
|
||||||
|
local url="https://github.com/$author/$repository/releases/download/$branch/$tool_name-$ARCH.AppImage"
|
||||||
|
|
||||||
|
echo "> wget --quiet --show-progress \"$url\" --output-document \"$TMP_DIR/$tool_name.AppImage\""
|
||||||
|
wget --quiet --show-progress "$url" --output-document "$TMP_DIR/$tool_name.AppImage"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
chmod u+x "$TMP_DIR/$tool_name.AppImage"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_tool "linuxdeploy" "linuxdeploy" "continuous" "linuxdeploy"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_tool "AppImage" "appimagetool" "continuous" "appimagetool"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_tool "linuxdeploy" "linuxdeploy-plugin-qt" "continuous" "linuxdeploy-plugin-qt"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$BUILD_DIR" || exit 1
|
||||||
|
|
||||||
|
echo "> $TMP_DIR/linuxdeploy.AppImage -e ToDo -d ../../ToDo.desktop -i ../../icon.png --appdir ./appdir"
|
||||||
|
"$TMP_DIR/linuxdeploy.AppImage" -e ToDo -d ../../ToDo.desktop -i ../../icon.png --appdir ./appdir
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
cd appdir || exit 1
|
||||||
|
cp /lib/x86_64-linux-gnu/libxcb.so.1 ./usr/lib/
|
||||||
|
mv ./usr/share/icons/hicolor/512x512/apps/icon.png ./usr/share/icons/hicolor/512x512/apps/ToDo.png
|
||||||
|
ln -s ./usr/share/icons/hicolor/512x512/apps/ToDo.png ToDo.png
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
echo "> $TMP_DIR/linuxdeploy.AppImage -e ToDo -d ../../ToDo.desktop -i ../../icon.png --appdir ./appdir"
|
||||||
|
"$TMP_DIR/linuxdeploy.AppImage" -e ToDo -d ../../ToDo.desktop -i ../../icon.png --appdir ./appdir
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "> $TMP_DIR/linuxdeploy.AppImage --appdir ./appdir --plugin qt --output appimage"
|
||||||
|
"$TMP_DIR/linuxdeploy.AppImage" --appdir ./appdir --plugin qt --output appimage
|
||||||
|
|
||||||
|
cp -r "$QT_PLUGINS" "$BUILD_DIR/appdir/usr/"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
find "$BUILD_DIR/appdir/usr/plugins" -name "*.debug" -type f -delete
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp /usr/lib/x86_64-linux-gnu/libxcb-*.so "$BUILD_DIR/appdir/usr/lib/"
|
||||||
|
cp $QT_PLUGINS/../lib/libQt6*.so.6 "$BUILD_DIR/appdir/usr/lib/"
|
||||||
|
|
||||||
|
echo "> $TMP_DIR/appimagetool.AppImage ./appdir"
|
||||||
|
"$TMP_DIR/appimagetool.AppImage" ./appdir
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "done."
|
||||||
|
exit 0
|
||||||
Reference in New Issue
Block a user