From abcbdbe9502e90d72b11d24f3f67abd502560bbc Mon Sep 17 00:00:00 2001 From: PancakeTAS Date: Thu, 24 Jul 2025 21:22:55 +0200 Subject: [PATCH] test: update to use sharun --- .github/workflows/build.yml | 19 +++---- ui/Cargo.toml | 6 --- ui/appimage.sh | 72 ++++++++++++++++++++++++++ ui/rsc/gay.pancake.lsfg-vk-ui.desktop | 13 +++++ ui/rsc/icon.png | Bin 0 -> 2245 bytes 5 files changed, 95 insertions(+), 15 deletions(-) create mode 100755 ui/appimage.sh create mode 100644 ui/rsc/gay.pancake.lsfg-vk-ui.desktop create mode 100644 ui/rsc/icon.png diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cb70b40..c8ffd6d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,40 +19,41 @@ jobs: - name: Install build dependencies uses: awalsh128/cache-apt-pkgs-action@latest with: - packages: git wget + packages: git wget xvfb clang clang-tools llvm rustup cmake ninja-build pkg-config libvulkan-dev libgtk-4-dev libadwaita-1-dev version: 1.0 execute_install_scripts: true - - name: Install rust dependencies + - name: Install rust dependency run: | rustup default stable - cargo install cargo-appimage - wget -O ui/appimagetool https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage - chmod +x ui/appimagetool # build the project - name: Configure with CMake and Ninja run: | cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=./build-release + -DCMAKE_INSTALL_PREFIX=./build-release \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On - name: Build with Ninja run: | ninja -C build - name: Install with CMake run: | cmake --install build --strip - - name: Build lsfg-vk-ui with Cargo + - name: Build lsfg-vk-ui with appimage.sh run: | pushd ui - PATH=$PATH:$PWD cargo appimage + chmod +x appimage.sh + ./appimage.sh popd - name: Install lsfg-vk-ui run: | mkdir -p build-release/bin - mv ui/target/appimage/lsfg-vk-ui.AppImage build-release/bin/lsfg-vk-ui + mv ui/lsfg-vk-ui.AppImage build-release/bin/lsfg-vk-ui # upload all files - name: Upload lsfg-vk artifact uses: actions/upload-artifact@v4 diff --git a/ui/Cargo.toml b/ui/Cargo.toml index 545c8a0..fb69cb0 100644 --- a/ui/Cargo.toml +++ b/ui/Cargo.toml @@ -14,9 +14,3 @@ proc-maps = "0.4.0" [build-dependencies] glib-build-tools = "0.21.0" - -[package.metadata.appimage] -auto_link = true -auto_link_exclude_list = [ - "ld-linux*", -] diff --git a/ui/appimage.sh b/ui/appimage.sh new file mode 100755 index 0000000..cd167a9 --- /dev/null +++ b/ui/appimage.sh @@ -0,0 +1,72 @@ +#!/bin/sh +set -eux + +# AppImage build script provided by @Samueru-sama +# (with removed aarch64 supported and removed update functionality, temporarily) + +URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-x86_64" +URUNTIME_LITE="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-lite-x86_64" +SHARUN="https://github.com/VHSgunzo/sharun/releases/latest/download/sharun-x86_64-aio" + +LIBXML_URL="https://github.com/pkgforge-dev/llvm-libs-debloated/releases/download/continuous/libxml2-iculess-x86_64.pkg.tar.zst" +MESA_URL="https://github.com/pkgforge-dev/llvm-libs-debloated/releases/download/continuous/mesa-mini-x86_64.pkg.tar.zst" +LLVM_URL="https://github.com/pkgforge-dev/llvm-libs-debloated/releases/download/continuous/llvm-libs-nano-x86_64.pkg.tar.zst" + +VERSION=$(awk -F'=|"' '/^version/{print $3}' ./Cargo.toml) +echo "$VERSION-dev" > ~/version + +# grab required resources +wget -O sharun-aio "$SHARUN" +chmod +x sharun-aio + +wget -O uruntime "$URUNTIME" +wget -O uruntime-lite "$URUNTIME_LITE" +chmod +x uruntime uruntime-lite + +# build lsfg-vk-ui +echo "Building lsfg-vk-ui..." +cargo build --release # doesn't compile with debloated llvm + +# install debloated dependencies +echo "Installing debloated packages..." +wget -O libxml2.pkg.tar.zst "$LIBXML_URL" +wget -O mesa.pkg.tar.zst "$MESA_URL" +wget -O llvm-libs.pkg.tar.zst "$LLVM_URL" + +#pacman -U --noconfirm *.pkg.tar.zst +rm -fv *.pkg.tar.zst + +# deploy app directory +echo "Deploying app directory..." +mkdir -p AppDir +cp -v rsc/*.desktop AppDir +cp -v rsc/icon.png AppDir/lsfg-vk-ui.png +cp -v rsc/icon.png AppDir/.DirIcon +mkdir -p AppDir/shared/bin +mv -v target/release/lsfg-vk-ui AppDir/shared/bin + +cd AppDir + xvfb-run -a ../sharun-aio l -p -v -e -s -k \ + shared/bin/lsfg-vk-ui \ + /usr/lib/gdk-pixbuf-*/*/loaders/* \ + /usr/lib/gio/modules/libdconfsettings.so + ln -fv ./sharun ./AppRun + ./sharun -g +cd .. + +# create appimage +echo "Generating app image..." +./uruntime --appimage-mkdwarfs -f \ + --set-owner 0 --set-group 0 \ + --no-history --no-create-timestamp \ + --compression zstd:level=22 -S26 -B8 \ + --header uruntime-lite \ + -i ./AppDir -o "./lsfg-vk-ui.AppImage" + +# cleanup +echo "Cleaning up..." +rm -rf AppDir +rm -f sharun-aio uruntime uruntime-lite + +# done +echo "Done" diff --git a/ui/rsc/gay.pancake.lsfg-vk-ui.desktop b/ui/rsc/gay.pancake.lsfg-vk-ui.desktop new file mode 100644 index 0000000..5b7ada2 --- /dev/null +++ b/ui/rsc/gay.pancake.lsfg-vk-ui.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=lsfg-vk Configuration Window +Comment=Easy to use configuration editor for lsfg-vk. +Exec=lsfg-vk-ui %U +Icon=gay.pancake.lsfg-vk-ui +Terminal=false +Categories=GTK;Settings; +Keywords=gaming;graphics;configuration; +StartupNotify=true +StartupWMClass=gay.pancake.lsfg-vk-ui +MimeType=application/x-lsfg-profile; diff --git a/ui/rsc/icon.png b/ui/rsc/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5e008b5776bde59e940eafe4114c48d17301cd0d GIT binary patch literal 2245 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%U;1OBOz`%DHj5lP=_ykf? z9OUlAc=M!AJ&>c2>=ES4z)+>ez|hdb!0-zw)bN6Vq11qZ;Z*_ygVhWM2JwP9y8>;1 z5-jPCzK#qG8~eHcB(gFvaOiouIEGZrd3(i?&&5)Z<)WoEx8LE1I~Z4lZ)Q?FvtHw| zc#ux?tNBmQ*#86SCI}8l{rmXc{@+3SweJ~wg2eM?f3A*S<5j zt>oT*_LtlNjnaqPBJVRxEY-VX_PUy3@s-xwX|?0vZrsE}YzVEACb zc7WkQB2NS3fx|hH4fV(O|LFzFSsccxN`is8q5Y;2!~b58P60GCz_Nx6Yz+L#40du2 z`~R^^F@zusK4SbKKka|EyWH6$i;vH*v1PcP#lUlb`-$uARX}_7Cy3{+2AaFaA#TfB zDF)^bOqCb6!4$k|I+R=dSqNuu~X z75!Ub;v#vomHXA+9GVPt%>Y|gW%B>nhQsbxc78lm9#Q|q&AsV=gOz#Q55Cv^cV2jW zkPmo%jQf7#--*()od1|#-KltJy~e(1vGT!shq==FHSJ&B^GZ~H@UJL--1>gQzZ1QE zEdLox^Y(m@y(Yi&;=~8`3(ob5?>qcU+1yI#5BspNh=@%H*Yy}6@U|{1(nd_F>@%`NV?%?Jt?dtW{Y%8Yy`taoZ zF81?5^7H;get!`8>hNUy*K#)AwH2Sz?>48e