@@ -6,10 +6,11 @@ sudo ()
66 " $@ "
77}
88
9+ sysroot_path=" $( pwd) /sysroot"
10+
911# Build
10- if [[ " $1 " != " 0" ]]; then
11- .ci/common/build.sh appimage_build linux || exit 1
12- fi
12+ PLATFORM=$1
13+ .ci/common/build.sh appimage_build $PLATFORM || exit 1
1314
1415repo_dir=$( pwd)
1516cd appimage_build
@@ -45,45 +46,58 @@ cmake .. &&
4546make -j$( nproc --all) &&
4647mv src/linuxdeploy-plugin-appimage ../.. &&
4748cd ../.. &&
48- rm -rf plugin-appimage &&
49-
50- # Build AppImageKit
51- sudo apt install -y snapd squashfs-tools &&
52- sudo snap install docker &&
53- git clone https://github.com/AppImage/AppImageKit --recurse-submodules &&
54- cd AppImageKit &&
55- sudo env ARCH=$( arch) bash ci/build.sh
56- sudo cp out/appimagetool /usr/bin/ &&
57- sudo cp out/digest /usr/bin/ &&
58- sudo cp out/validate /usr/bin/ &&
59- cd .. &&
60- sudo mkdir -p /usr/lib/appimagekit &&
61- sudo ln -s /usr/bin/mksquashfs /usr/lib/appimagekit/mksquashfs &&
49+ rm -rf plugin-appimage
50+
51+ # Download appimagetool
52+ wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage &&
53+ mv appimagetool-* .AppImage appimagetool
54+ export PATH=$( pwd) :$PATH
6255
6356# Install patchelf from PyPI (see https://github.com/linuxdeploy/linuxdeploy-plugin-qt/issues/133#issuecomment-1608168363)
6457sudo apt install -y python3-pip
58+ python3 -m venv .venv
59+ source .venv/bin/activate
6560pip3 install patchelf
66- export PATH=$PATH :~ /.local/bin
61+ patchelf --version
62+
63+ # Use custom ldd and strip
64+ if [[ " $PLATFORM " == " linux_gcc_arm64" ]]; then
65+ ln -s /usr/bin/aarch64-linux-gnu-strip strip
66+ sudo cp ../.ci/bin/xldd /usr/bin/aarch64-linux-gnu-ldd
67+ ln -s /usr/bin/aarch64-linux-gnu-ldd ldd
68+ export CT_XLDD_ROOT=" $sysroot_path "
69+ fi
70+
71+ # Set LD_LIBRARY_PATH (directories with *.so files)
72+ LD_LIBRARY_PATH=" "
73+
74+ for file in $( find . -type f -name " *.so" ) ; do
75+ dir=$( dirname " $file " )
76+ if [[ " :$LD_LIBRARY_PATH :" != * " :$dir :" * ]]; then
77+ LD_LIBRARY_PATH=" $LD_LIBRARY_PATH :` readlink -f $dir ` "
78+ fi
79+ done
80+
81+ LD_LIBRARY_PATH=${LD_LIBRARY_PATH#: }
82+ export LD_LIBRARY_PATH
83+ echo " LD_LIBRARY_PATH set to: $LD_LIBRARY_PATH "
6784
6885# Build AppImage
86+ if [[ " $PLATFORM " == " linux_gcc_arm64" ]]; then
87+ # TODO: Do not use AppImageKit releases, they're obsolete
88+ wget https://github.com/AppImage/AppImageKit/releases/download/continuous/runtime-aarch64
89+ export ARCH=arm_aarch64
90+ APPIMAGE_ARCH=aarch64
91+ export LDAI_RUNTIME_FILE=runtime-aarch64
92+ else
93+ APPIMAGE_ARCH=x86_64
94+ fi
95+
6996export QML_SOURCES_PATHS=$( pwd) /src &&
70- export EXTRA_QT_PLUGINS= " svg;" &&
71- export LDAI_UPDATE_INFORMATION=" ${appimage_zsync_prefix}${app_name} *-${APPIMAGE_ARCH-$(arch) } .AppImage.zsync"
97+ export EXTRA_QT_MODULES= " qml; svg;" &&
98+ export LDAI_UPDATE_INFORMATION=" ${appimage_zsync_prefix}${app_name} *-${APPIMAGE_ARCH} .AppImage.zsync"
7299echo " AppImage update information: ${LDAI_UPDATE_INFORMATION} "
73100
74- case " $( qmake -query QMAKE_XSPEC) " in
75- linux-arm-gnueabi-g++)
76- wget https://github.com/AppImage/AppImageKit/releases/download/continuous/runtime-armhf
77- export ARCH=arm
78- export LDAI_RUNTIME_FILE=runtime-armhf
79- ;;
80- linux-aarch64-gnu-g++)
81- wget https://github.com/AppImage/AppImageKit/releases/download/continuous/runtime-aarch64
82- export ARCH=arm_aarch64
83- export LDAI_RUNTIME_FILE=runtime-aarch64
84- ;;
85- esac
86-
87101./linuxdeploy --appdir AppDir -e src/app/${executable_name} -i $repo_dir /res/${executable_name} .png -d $repo_dir /release/appimage.desktop --plugin qt --output appimage
88102
89103mv * .AppImage* $repo_dir
0 commit comments