aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorswurl <swurl@swurl.xyz>2025-04-13 19:35:59 -0400
committeredendev <eden-dev@proton.me>2025-04-19 14:57:09 -0700
commit3695481a80e3b28efdfc545821e417967f5927e4 (patch)
treeb25ac4869c3c8b4910db07621ad80fa0cbd4a768
parentb66ebe638bb9caf0dd6172cf066c22adf41cbef4 (diff)
Fix Alpha warning label & CI Building
Signed-off-by: swurl <swurl@swurl.xyz>
-rw-r--r--.ci/eden.dwfsprof259
-rwxr-xr-x.ci/linux.sh41
-rwxr-xr-x.ci/package-appimage.sh196
-rw-r--r--.github/workflows/build.yml49
-rw-r--r--.github/workflows/license-header.yml6
-rw-r--r--src/core/hle/service/am/process_creation.cpp2
-rw-r--r--src/yuzu/game_list.cpp4
7 files changed, 430 insertions, 127 deletions
diff --git a/.ci/eden.dwfsprof b/.ci/eden.dwfsprof
new file mode 100644
index 0000000000..377d5fec89
--- /dev/null
+++ b/.ci/eden.dwfsprof
@@ -0,0 +1,259 @@
+AppRun
+org.eden_emu.eden.desktop
+bin/eden
+shared/lib/lib.path
+shared/lib/ld-linux-x86-64.so.2
+shared/lib/libQt6Widgets.so.6.9.0
+shared/lib/libQt6Network.so.6.9.0
+shared/lib/libusb-1.0.so.0.5.0
+shared/lib/libenet.so.7.0.6
+shared/lib/libbrotlicommon.so.1.1.0
+shared/lib/libbrotlienc.so.1.1.0
+shared/lib/libbrotlidec.so.1.1.0
+shared/lib/libz.so.1.3.1
+shared/lib/libssl.so.3
+shared/lib/libcrypto.so.3
+shared/lib/libavcodec.so.61.19.100
+shared/lib/libavdevice.so.61.3.100
+shared/lib/libavfilter.so.10.4.100
+shared/lib/libavformat.so.61.7.100
+shared/lib/libavutil.so.59.39.100
+shared/lib/libswresample.so.5.3.100
+shared/lib/libswscale.so.8.3.100
+shared/lib/libva.so.2.2200.0
+shared/lib/libboost_context.so.1.87.0
+shared/lib/liblz4.so.1.10.0
+shared/lib/libzstd.so.1.5.7
+shared/lib/libSDL2-2.0.so.0.3200.54
+shared/lib/libfmt.so.11.1.4
+shared/lib/libopus.so.0.10.1
+shared/lib/libQt6Gui.so.6.9.0
+shared/lib/libQt6DBus.so.6.9.0
+shared/lib/libGLX.so.0.0.0
+shared/lib/libOpenGL.so.0.0.0
+shared/lib/libQt6Core.so.6.9.0
+shared/lib/libstdc++.so.6.0.33
+shared/lib/libm.so.6
+shared/lib/libgcc_s.so.1
+shared/lib/libc.so.6
+shared/lib/libgssapi_krb5.so.2.2
+shared/lib/libproxy.so.0.5.9
+shared/lib/libudev.so.1.7.10
+shared/lib/libvpx.so.9.1.0
+shared/lib/libwebpmux.so.3.1.1
+shared/lib/liblzma.so.5.8.1
+shared/lib/libdav1d.so.7.0.0
+shared/lib/libopencore-amrwb.so.0.0.5
+shared/lib/librsvg-2.so.2.60.0
+shared/lib/libcairo.so.2.11804.4
+shared/lib/libgobject-2.0.so.0.8400.1
+shared/lib/libglib-2.0.so.0.8400.1
+shared/lib/libsnappy.so.1.2.2
+shared/lib/libaom.so.3.12.0
+shared/lib/libgsm.so.1.0.22
+shared/lib/libjxl.so.0.11.1
+shared/lib/libjxl_threads.so.0.11.1
+shared/lib/libmp3lame.so.0.0.0
+shared/lib/libopencore-amrnb.so.0.0.5
+shared/lib/libopenjp2.so.2.5.3
+shared/lib/libspeex.so.1.5.2
+shared/lib/libtheoraenc.so.1.1.2
+shared/lib/libtheoradec.so.1.1.4
+shared/lib/libvorbis.so.0.4.9
+shared/lib/libvorbisenc.so.2.0.12
+shared/lib/libwebp.so.7.1.10
+shared/lib/libx264.so.164
+shared/lib/libxvidcore.so.4.3
+shared/lib/libvpl.so.2.14
+shared/lib/libraw1394.so.11.1.0
+shared/lib/libavc1394.so.0.3.0
+shared/lib/librom1394.so.0.3.0
+shared/lib/libiec61883.so.0.1.1
+shared/lib/libjack.so.0.1.0
+shared/lib/libdrm.so.2.124.0
+shared/lib/libxcb.so.1.1.0
+shared/lib/libxcb-shm.so.0.0.0
+shared/lib/libxcb-shape.so.0.0.0
+shared/lib/libxcb-xfixes.so.0.0.0
+shared/lib/libasound.so.2.0.0
+shared/lib/libGL.so.1.7.0
+shared/lib/libpulse.so.0.24.3
+shared/lib/libv4l2.so.0.0.0
+shared/lib/libXv.so.1.0.0
+shared/lib/libX11.so.6.4.0
+shared/lib/libXext.so.6.4.0
+shared/lib/libpostproc.so.58.3.100
+shared/lib/libbs2b.so.0.0.0
+shared/lib/librubberband.so.3.0.0
+shared/lib/libharfbuzz.so.0.61101.0
+shared/lib/libfribidi.so.0.4.0
+shared/lib/libplacebo.so.349
+shared/lib/libvmaf.so.3.0.0
+shared/lib/libass.so.9.3.1
+shared/lib/libvidstab.so.1.2
+shared/lib/libzmq.so.5.2.5
+shared/lib/libzimg.so.2.0.0
+shared/lib/libglslang.so.15.2.0
+shared/lib/libOpenCL.so.1.0.0
+shared/lib/libfontconfig.so.1.15.0
+shared/lib/libfreetype.so.6.20.2
+shared/lib/libdvdnav.so.4.3.0
+shared/lib/libdvdread.so.8.0.0
+shared/lib/libxml2.so.2.13.5
+shared/lib/libbz2.so.1.0.8
+shared/lib/libmodplug.so.1.0.0
+shared/lib/libopenmpt.so.0.4.4
+shared/lib/libbluray.so.2.4.3
+shared/lib/libgmp.so.10.5.0
+shared/lib/libgnutls.so.30.40.3
+shared/lib/libsrt.so.1.5.4
+shared/lib/libssh.so.4.10.1
+shared/lib/libva-drm.so.2.2200.0
+shared/lib/libva-x11.so.2.2200.0
+shared/lib/libvdpau.so.1.0.0
+shared/lib/libsoxr.so.0.1.2
+shared/lib/libEGL.so.1.1.0
+shared/lib/libxkbcommon.so.0.8.1
+shared/lib/libpng16.so.16.47.0
+shared/lib/libmd4c.so.0.5.2
+shared/lib/libdbus-1.so.3.38.3
+shared/lib/libGLdispatch.so.0.0.0
+shared/lib/libdouble-conversion.so.3.3.0
+shared/lib/libb2.so.1.0.4
+shared/lib/libpcre2-16.so.0.14.0
+shared/lib/libkrb5.so.3.3
+shared/lib/libk5crypto.so.3.1
+shared/lib/libcom_err.so.2.1
+shared/lib/libkrb5support.so.0.1
+shared/lib/libkeyutils.so.1.10
+shared/lib/libresolv.so.2
+shared/lib/libproxy/libpxbackend-1.0.so
+shared/lib/libcap.so.2.75
+shared/lib/libgio-2.0.so.0.8400.1
+shared/lib/libgdk_pixbuf-2.0.so.0.4200.12
+shared/lib/libpangocairo-1.0.so.0.5600.3
+shared/lib/libpango-1.0.so.0.5600.3
+shared/lib/libXrender.so.1.3.0
+shared/lib/libxcb-render.so.0.0.0
+shared/lib/libpixman-1.so.0.44.2
+shared/lib/libffi.so.8.1.4
+shared/lib/libpcre2-8.so.0.14.0
+shared/lib/libjxl_cms.so.0.11.1
+shared/lib/libhwy.so.1.2.0
+shared/lib/libogg.so.0.8.5
+shared/lib/libsharpyuv.so.0.1.1
+shared/lib/libdb-5.3.so
+shared/lib/libXau.so.6.0.0
+shared/lib/libXdmcp.so.6.0.0
+shared/lib/pulseaudio/libpulsecommon-17.0.so
+shared/lib/libv4lconvert.so.0.0.0
+shared/lib/libfftw3.so.3.6.10
+shared/lib/libsamplerate.so.0.2.2
+shared/lib/libgraphite2.so.3.2.1
+shared/lib/libunwind.so.8.1.0
+shared/lib/libshaderc_shared.so.1
+shared/lib/libglslang-default-resource-limits.so.15.2.0
+shared/lib/libvulkan.so.1.4.309
+shared/lib/liblcms2.so.2.0.17
+shared/lib/libdovi.so.3.3.1
+shared/lib/libunibreak.so.6.0.1
+shared/lib/libgomp.so.1.0.0
+shared/lib/libsodium.so.26.2.0
+shared/lib/libpgm-5.3.so.0.0.128
+shared/lib/libSPIRV-Tools-opt.so
+shared/lib/libSPIRV-Tools.so
+shared/lib/libexpat.so.1.10.2
+shared/lib/libmpg123.so.0.48.3
+shared/lib/libvorbisfile.so.3.3.8
+shared/lib/libleancrypto.so.1
+shared/lib/libp11-kit.so.0.4.1
+shared/lib/libidn2.so.0.4.0
+shared/lib/libunistring.so.5.2.0
+shared/lib/libtasn1.so.6.6.4
+shared/lib/libhogweed.so.6.10
+shared/lib/libnettle.so.8.10
+shared/lib/libXfixes.so.3.1.0
+shared/lib/libX11-xcb.so.1.0.0
+shared/lib/libxcb-dri3.so.0.1.0
+shared/lib/libsystemd.so.0.40.0
+shared/lib/libcurl.so.4.8.0
+shared/lib/libduktape.so.207.20700
+shared/lib/libgmodule-2.0.so.0.8400.1
+shared/lib/libmount.so.1.1.0
+shared/lib/libjpeg.so.8.3.2
+shared/lib/libtiff.so.6.1.0
+shared/lib/libpangoft2-1.0.so.0.5600.3
+shared/lib/libthai.so.0.3.1
+shared/lib/libsndfile.so.1.0.37
+shared/lib/libasyncns.so.0.3.1
+shared/lib/libnghttp3.so.9.2.6
+shared/lib/libnghttp2.so.14.28.4
+shared/lib/libssh2.so.1.0.1
+shared/lib/libpsl.so.5.3.5
+shared/lib/libblkid.so.1.1.0
+shared/lib/libjbig.so.2.1
+shared/lib/libdatrie.so.1.4.0
+shared/lib/libFLAC.so.14.0.0
+shared/lib/libSDL3.so.0.2.10
+share/vulkan/icd.d/intel_hasvk_icd.x86_64.json
+shared/lib/libvulkan_intel_hasvk.so
+shared/lib/libxcb-present.so.0.0.0
+shared/lib/libxcb-sync.so.1.0.0
+shared/lib/libxcb-randr.so.0.1.0
+shared/lib/libxshmfence.so.1.0.0
+shared/lib/libxcb-keysyms.so.1.0.0
+shared/lib/libwayland-client.so.0.23.1
+share/vulkan/icd.d/intel_icd.x86_64.json
+shared/lib/libvulkan_intel.so
+share/vulkan/icd.d/nouveau_icd.x86_64.json
+shared/lib/libvulkan_nouveau.so
+share/vulkan/icd.d/radeon_icd.x86_64.json
+shared/lib/libvulkan_radeon.so
+shared/lib/libLLVM.so.19.1
+shared/lib/libelf-0.192.so
+shared/lib/libdrm_amdgpu.so.1.124.0
+shared/lib/libedit.so.0.0.75
+shared/lib/libncursesw.so.6.5
+bin/qt.conf
+shared/lib/qt6/plugins/platforms/libqeglfs.so
+shared/lib/qt6/plugins/platforms/libqlinuxfb.so
+shared/lib/qt6/plugins/platforms/libqminimal.so
+shared/lib/qt6/plugins/platforms/libqminimalegl.so
+shared/lib/qt6/plugins/platforms/libqoffscreen.so
+shared/lib/qt6/plugins/platforms/libqvkkhrdisplay.so
+shared/lib/qt6/plugins/platforms/libqvnc.so
+shared/lib/qt6/plugins/platforms/libqwayland-egl.so
+shared/lib/qt6/plugins/platforms/libqwayland-generic.so
+shared/lib/qt6/plugins/platforms/libqxcb.so
+shared/lib/libQt6XcbQpa.so.6.9.0
+shared/lib/libxcb-cursor.so.0.0.0
+shared/lib/libxcb-icccm.so.4.0.0
+shared/lib/libxcb-image.so.0.0.0
+shared/lib/libxcb-render-util.so.0.0.0
+shared/lib/libxcb-xkb.so.1.0.0
+shared/lib/libSM.so.6.0.1
+shared/lib/libICE.so.6.3.0
+shared/lib/libxcb-xinput.so.0.1.0
+shared/lib/libxkbcommon-x11.so.0.8.1
+shared/lib/libxcb-util.so.1.0.0
+shared/lib/libuuid.so.1.3.0
+shared/lib/qt6/plugins/platformthemes/libqgtk3.so
+shared/lib/qt6/plugins/platformthemes/libqt6ct.so
+shared/lib/qt6/plugins/platformthemes/libqxdgdesktopportal.so
+shared/lib/libqt6ct-common.so.0.10
+etc/fonts/fonts.conf
+shared/lib/libXi.so.6.1.0
+shared/lib/libwayland-cursor.so.0.23.1
+shared/lib/libwayland-egl.so.1.23.1
+shared/lib/libXcursor.so.1.0.2
+shared/lib/libXrandr.so.2.2.0
+shared/lib/qt6/plugins/styles/libqt6ct-style.so
+shared/lib/qt6/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so
+shared/lib/qt6/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so
+shared/lib/qt6/plugins/iconengines/libqsvgicon.so
+shared/lib/qt6/plugins/imageformats/libqgif.so
+shared/lib/qt6/plugins/imageformats/libqico.so
+shared/lib/qt6/plugins/imageformats/libqjpeg.so
+shared/lib/qt6/plugins/imageformats/libqsvg.so
+shared/lib/libQt6Svg.so.6.9.0
+shared/lib/libXss.so.1.0.0
diff --git a/.ci/linux.sh b/.ci/linux.sh
index 4953270c66..d5d316b26c 100755
--- a/.ci/linux.sh
+++ b/.ci/linux.sh
@@ -1,5 +1,26 @@
#!/bin/bash -ex
+export ARCH="$(uname -m)"
+
+if [ "$ARCH" = 'x86_64' ]; then
+ if [ "$1" = 'v3' ]; then
+ echo "Making x86-64-v3 optimized build of eden"
+ ARCH="${ARCH}_v3"
+ ARCH_FLAGS="-march=x86-64-v3 -O3"
+ else
+ echo "Making x86-64 generic build of eden"
+ ARCH_FLAGS="-march=x86-64 -mtune=generic -O3"
+ fi
+else
+ echo "Making aarch64 build of eden"
+ ARCH_FLAGS="-march=armv8-a -mtune=generic -O3"
+fi
+
+NPROC="$2"
+if [ -z "$NPROC" ]; then
+ NPROC="$(nproc)"
+fi
+
if [ "$TARGET" = "appimage" ]; then
# Compile the AppImage we distribute with Clang.
export EXTRA_CMAKE_FLAGS=(-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_LINKER=/etc/bin/ld.lld)
@@ -23,9 +44,27 @@ cmake .. -G Ninja \
-DENABLE_QT_TRANSLATION=ON \
-DUSE_DISCORD_PRESENCE=ON \
-DUSE_CCACHE=ON \
+ -DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \
+ -DCMAKE_C_FLAGS="$ARCH_FLAGS" \
+ -DYUZU_USE_BUNDLED_VCPKG=OFF \
+ -DYUZU_USE_BUNDLED_QT=OFF \
+ -DUSE_SYSTEM_QT=ON \
+ -DYUZU_USE_BUNDLED_FFMPEG=OFF \
+ -DYUZU_USE_BUNDLED_SDL2=ON \
+ -DYUZU_USE_EXTERNAL_SDL2=OFF \
+ -DYUZU_TESTS=OFF \
+ -DYUZU_USE_LLVM_DEMANGLE=OFF \
+ -DYUZU_USE_QT_MULTIMEDIA=OFF \
+ -DYUZU_USE_QT_WEB_ENGINE=OFF \
+ -DENABLE_QT_TRANSLATION=ON \
+ -DUSE_DISCORD_PRESENCE=OFF \
+ -DBUNDLE_SPEEX=ON \
+ -DYUZU_USE_FASTER_LD=OFF \
+ -DYUZU_ENABLE_LTO=ON \
"${EXTRA_CMAKE_FLAGS[@]}"
-ninja -j4
+ninja -j${NPROC}
+
if [ -d "bin/Release" ]; then
strip -s bin/Release/*
else
diff --git a/.ci/package-appimage.sh b/.ci/package-appimage.sh
index b2b9464fcc..240bde517a 100755
--- a/.ci/package-appimage.sh
+++ b/.ci/package-appimage.sh
@@ -1,120 +1,120 @@
-#!/bin/bash -ex
+#!/bin/sh
-GITDATE="$(git show -s --date=short --format='%ad' | sed 's/-//g')"
-GITREV="$(git show -s --format='%h')"
-ARTIFACTS_DIR="$PWD/artifacts"
-mkdir -p "${ARTIFACTS_DIR}/"
+# This script assumes you're in the source directory
+set -ex
-if [ "$1" == "master" ]; then
- RELEASE_NAME="mainline"
-else
- RELEASE_NAME="$1"
-fi
+export APPIMAGE_EXTRACT_AND_RUN=1
+export ARCH="$(uname -m)"
-BASE_NAME="eden-linux"
-REV_NAME="${BASE_NAME}-${GITDATE}-${GITREV}"
-ARCHIVE_NAME="${REV_NAME}.tar.xz"
-COMPRESSION_FLAGS="-cJvf"
+LIB4BN="https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bin"
+URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-$ARCH"
-if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
- DIR_NAME="${BASE_NAME}-${RELEASE_NAME}"
-else
- DIR_NAME="${REV_NAME}-${RELEASE_NAME}"
+if [ "$ARCH" = 'x86_64' ]; then
+ if [ "$1" = 'v3' ]; then
+ ARCH="${ARCH}_v3"
+ fi
fi
-mkdir -p "$DIR_NAME"
-
-
-cp LICENSE.txt "$DIR_NAME/" || echo "LICENSE.txt not found"
-cp README.md "$DIR_NAME/" || echo "README.md not found"
-
-create_appimage() {
- local binary_name="$1"
- local display_name="$2"
- local needs_qt="$3"
- local app_dir="build/AppDir-${binary_name}"
- local appimage_output="${binary_name}.AppImage"
-
- echo "Creating AppImage for ${binary_name}..."
-
- mkdir -p "${app_dir}/usr/bin"
- mkdir -p "${app_dir}/usr/lib"
- mkdir -p "${app_dir}/usr/share/applications"
- mkdir -p "${app_dir}/usr/share/icons/hicolor/scalable/apps"
- mkdir -p "${app_dir}/usr/optional/libstdc++"
- mkdir -p "${app_dir}/usr/optional/libgcc_s"
-
- if [ -d "build/bin/Release" ]; then
- cp "build/bin/Release/${binary_name}" "${app_dir}/usr/bin/" || echo "${binary_name} not found for AppDir"
- else
- cp "build/bin/${binary_name}" "${app_dir}/usr/bin/" || echo "${binary_name} not found for AppDir"
- fi
-
- strip -s "${app_dir}/usr/bin/${binary_name}"
-
- cat > "${app_dir}/org.yuzu_emu.${binary_name}.desktop" << EOL
+#if [ "$DEVEL" = 'true' ]; then
+# YUZU_TAG="$(git rev-parse --short HEAD)"
+# echo "Making nightly \"$YUZU_TAG\" build"
+# VERSION="$YUZU_TAG"
+#else
+# YUZU_TAG=$(git describe --tags)
+# echo "Making stable \"$YUZU_TAG\" build"
+# git checkout "$YUZU_TAG"
+# VERSION="$(echo "$YUZU_TAG" | awk -F'-' '{print $1}')"
+#fi
+
+# TODO: use real tags
+YUZU_TAG="0.0.0"
+
+# NOW MAKE APPIMAGE
+mkdir -p ./AppDir
+cd ./AppDir
+
+cat > org.eden_emu.eden.desktop << EOL
[Desktop Entry]
Type=Application
-Name=${display_name}
-Icon=org.yuzu_emu.${binary_name}
-Exec=${binary_name}
+Name=Eden
+Icon=org.eden_emu.eden
+Exec=eden
Categories=Game;Emulator;
EOL
- cp "${app_dir}/org.yuzu_emu.${binary_name}.desktop" "${app_dir}/usr/share/applications/"
-
- cp "dist/eden.svg" "${app_dir}/org.yuzu_emu.${binary_name}.svg"
- cp "dist/eden.svg" "${app_dir}/usr/share/icons/hicolor/scalable/apps/org.yuzu_emu.${binary_name}.svg"
-
- cd build
- wget -nc https://raw.githubusercontent.com/eden-emulator/ext-linux-bin/main/appimage/deploy-linux.sh || echo "Failed to download deploy script"
- wget -nc https://raw.githubusercontent.com/eden-emulator/AppImageKit-checkrt/old/AppRun.sh || echo "Failed to download AppRun script"
- wget -nc https://github.com/eden-emulator/ext-linux-bin/raw/main/appimage/exec-x86_64.so || echo "Failed to download exec wrapper"
- chmod +x deploy-linux.sh
+cp ../dist/eden.svg ./org.eden_emu.eden.svg
- cd ..
- if [ "$needs_qt" = "true" ]; then
- echo "Deploying with Qt dependencies for ${binary_name}..."
- DEPLOY_QT=1 build/deploy-linux.sh "${app_dir}/usr/bin/${binary_name}" "${app_dir}"
- else
- echo "Deploying without Qt dependencies for ${binary_name}..."
- build/deploy-linux.sh "${app_dir}/usr/bin/${binary_name}" "${app_dir}"
- fi
+ln -sf ./org.eden_emu.eden.svg.svg ./.DirIcon
- cp --dereference /usr/lib/x86_64-linux-gnu/libstdc++.so.6 "${app_dir}/usr/optional/libstdc++/libstdc++.so.6" || true
- cp --dereference /lib/x86_64-linux-gnu/libgcc_s.so.1 "${app_dir}/usr/optional/libgcc_s/libgcc_s.so.1" || true
-
- cp build/exec-x86_64.so "${app_dir}/usr/optional/exec.so" || true
- cp build/AppRun.sh "${app_dir}/AppRun"
- chmod +x "${app_dir}/AppRun"
+if [ "$DEVEL" = 'true' ]; then
+ sed -i 's|Name=Eden|Name=Eden Nightly|' ./org.eden_emu.eden.desktop
+ UPINFO="$(echo "$UPINFO" | sed 's|latest|nightly|')"
+fi
- find "${app_dir}" -type f -regex '.*libwayland-client\.so.*' -delete -print || true
+# Bundle all libs
+wget --retry-connrefused --tries=30 "$LIB4BN" -O ./lib4bin
+chmod +x ./lib4bin
+xvfb-run -a -- ./lib4bin -p -v -e -s -k \
+ ../build/bin/eden* \
+ /usr/lib/libGLX* \
+ /usr/lib/libGL.so* \
+ /usr/lib/libEGL* \
+ /usr/lib/dri/* \
+ /usr/lib/vdpau/* \
+ /usr/lib/libvulkan* \
+ /usr/lib/libXss.so* \
+ /usr/lib/libdecor-0.so* \
+ /usr/lib/libgamemode.so* \
+ /usr/lib/qt6/plugins/audio/* \
+ /usr/lib/qt6/plugins/bearer/* \
+ /usr/lib/qt6/plugins/imageformats/* \
+ /usr/lib/qt6/plugins/iconengines/* \
+ /usr/lib/qt6/plugins/platforms/* \
+ /usr/lib/qt6/plugins/platformthemes/* \
+ /usr/lib/qt6/plugins/platforminputcontexts/* \
+ /usr/lib/qt6/plugins/styles/* \
+ /usr/lib/qt6/plugins/xcbglintegrations/* \
+ /usr/lib/qt6/plugins/wayland-*/* \
+ /usr/lib/pulseaudio/* \
+ /usr/lib/pipewire-0.3/* \
+ /usr/lib/spa-0.2/*/* \
+ /usr/lib/alsa-lib/*
+
+# Prepare sharun
+if [ "$ARCH" = 'aarch64' ]; then
+ # allow the host vulkan to be used for aarch64 given the sed situation
+ echo 'SHARUN_ALLOW_SYS_VKICD=1' > ./.env
+fi
- cd build
+wget https://github.com/VHSgunzo/sharun/releases/download/v0.6.3/sharun-x86_64 -O sharun
+chmod a+x sharun
- if [ ! -f "appimagetool-x86_64.AppImage" ]; then
- wget -nc https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
- chmod +x appimagetool-x86_64.AppImage
- fi
+ln -f ./sharun ./AppRun
+./sharun -g
- if ! ./appimagetool-x86_64.AppImage --version; then
- echo "FUSE not available, using extract and run mode"
- export APPIMAGE_EXTRACT_AND_RUN=1
- fi
+# turn appdir into appimage
+cd ..
+wget -q "$URUNTIME" -O ./uruntime
+chmod +x ./uruntime
- echo "Generating AppImage: ${appimage_output}"
- ./appimagetool-x86_64.AppImage "AppDir-${binary_name}" "${appimage_output}" || echo "AppImage generation failed for ${binary_name}"
+#Add udpate info to runtime
+echo "Adding update information \"$UPINFO\" to runtime..."
+./uruntime --appimage-addupdinfo "$UPINFO"
- cp "${appimage_output}" "../${DIR_NAME}/" || echo "AppImage not copied to DIR_NAME for ${binary_name}"
- cp "${appimage_output}" "../${ARTIFACTS_DIR}/" || echo "AppImage not copied to artifacts for ${binary_name}"
- cd ..
-}
+echo "Generating AppImage..."
+./uruntime --appimage-mkdwarfs -f \
+ --set-owner 0 --set-group 0 \
+ --no-history --no-create-timestamp \
+ --categorize=hotness --hotness-list=.ci/eden.dwfsprof \
+ --compression zstd:level=22 -S26 -B32 \
+ --header uruntime \
+ -i ./AppDir -o Eden-"$VERSION"-"$ARCH".AppImage
-create_appimage "eden" "Eden" "true"
-create_appimage "eden-cli" "Eden-CLI" "false"
-create_appimage "eden-room" "Eden-Room" "false"
+echo "Generating zsync file..."
+zsyncmake *.AppImage -u *.AppImage
+echo "All Done!"
-tar $COMPRESSION_FLAGS "$ARCHIVE_NAME" "$DIR_NAME"
-mv "$ARCHIVE_NAME" "${ARTIFACTS_DIR}/"
+# Cleanup
-ls -la "${ARTIFACTS_DIR}/"
+rm -rf AppDir
+rm uruntime
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 3b3b7e4250..b67fa71119 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,13 +1,12 @@
# TODO: This document needs to be formatted,
-# appimage should use linuxdeploy probably
# some stuff needs cleaned up etc
name: eden-build
on:
push:
- branches: [ "*" ]
+ branches: [ "master" ]
tags: [ "*" ]
- pull_request_target:
+ pull_request:
branches: [ master ]
jobs:
@@ -26,7 +25,7 @@ jobs:
name: source.zip
path: artifacts/
windows:
- runs-on: windows-latest
+ runs-on: windows
strategy:
matrix:
target: ["msvc"] # TODO: Add msys2
@@ -43,8 +42,7 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: recursive
- fetch-depth: 1
- fetch-tags: true
+ fetch-depth: 0
- name: Set up vcpkg cache
uses: actions/cache@v4
@@ -58,21 +56,24 @@ jobs:
${{ runner.os }}-${{ matrix.target }}-vcpkg-
- name: Set up MSVC
- uses: ilammy/msvc-dev-cmd@v1
+ uses: https://github.com/ilammy/msvc-dev-cmd@v1
if: ${{ matrix.target == 'msvc' }}
- - name: Install extra tools
- run: choco install ccache ninja wget cygwin
- if: ${{ matrix.target == 'msvc' }}
- - name: Install vulkan-SDK
- run: ./.ci/install-vulkan-sdk.ps1
- shell: pwsh
+
+# - name: Install extra tools
+# run: choco install ccache ninja wget cygwin
+# if: ${{ matrix.target == 'msvc' }}
+
+# - name: Install vulkan-SDK
+# run: ./.ci/install-vulkan-sdk.ps1
+# shell: powershell
+
- name: Cygwin with autoconf # NEEDED FOR LIBUSB
shell: cmd
run: |
C:\tools\cygwin\cygwinsetup.exe -q -P autoconf,automake,libtool,make,pkg-config
REM Create wrapper batch files for Cygwin tools in a directory that will be in PATH
- mkdir C:\cygwin-wrappers
+ REM mkdir C:\cygwin-wrappers
REM Create autoconf.bat wrapper
echo @echo off > C:\cygwin-wrappers\autoconf.bat
@@ -85,6 +86,7 @@ jobs:
REM Add the wrappers directory to PATH
echo C:\cygwin-wrappers>>"%GITHUB_PATH%"
echo C:\tools\cygwin\bin>>"%GITHUB_PATH%"
+
- name: CMake Configure
id: cmake
shell: cmd
@@ -92,16 +94,18 @@ jobs:
mkdir build
cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_TOOLCHAIN_FILE="%CD%\..\CMakeModules\MSVCCache.cmake" -DYUZU_USE_BUNDLED_QT=ON -DENABLE_QT_TRANSLATION=ON -DUSE_DISCORD_PRESENCE=ON -DYUZU_USE_BUNDLED_VCPKG=ON -DYUZU_USE_BUNDLED_SDL2=ON -DUSE_CCACHE=ON
+
- name: Build
id: build
shell: cmd
run: |
cd build
- ninja yuzu yuzu-cmd yuzu-room tests -j4
+ ninja yuzu yuzu-cmd yuzu-room tests
ccache -s -v
+
- name: Package artifacts
if: steps.build.outcome == 'success'
- shell: pwsh
+ shell: powershell
run: |
$GITDATE = $(git show -s --date=short --format='%ad') -replace "-", ""
$GITREV = $(git show -s --format='%h')
@@ -138,6 +142,7 @@ jobs:
Copy-Item "LICENSE*" -Destination "$RELEASE_DIST" -ErrorAction SilentlyContinue
Copy-Item "README*" -Destination "$RELEASE_DIST" -ErrorAction SilentlyContinue
+
- name: Upload Windows artifacts
if: steps.build.outcome == 'success'
uses: forgejo/upload-artifact@v4
@@ -160,17 +165,18 @@ jobs:
fetch-tags: true
- name: Build
- run: ./.ci/linux.sh
+ run: |
+ ./.ci/linux.sh v3 4
- - name: Package AppImages
+ - name: Package AppImage
run: |
- ./.ci/package-appimage.sh "${{ github.ref_name }}"
+ ./.ci/package-appimage.sh v3
- name: Upload Linux artifacts
uses: forgejo/upload-artifact@v4
with:
name: linux.zip
- path: artifacts/*
+ path: ./*.AppImage
android:
runs-on: android
@@ -186,8 +192,7 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: recursive
- fetch-depth: 1
- fetch-tags: true
+ fetch-depth: 0
- name: Set tag name
run: |
diff --git a/.github/workflows/license-header.yml b/.github/workflows/license-header.yml
index bc4d1d6023..e07be810dd 100644
--- a/.github/workflows/license-header.yml
+++ b/.github/workflows/license-header.yml
@@ -7,16 +7,16 @@ on:
jobs:
license-header:
runs-on: linux
- container:
- image: opensauce04/lime3ds-build:latest
- options: -u 1001
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
+
- name: Fetch master branch
run: git fetch origin master:master
+
- name: Make script executable
run: chmod +x ./.ci/license-header.rb
+
- name: Check license headers
run: ./.ci/license-header.rb
diff --git a/src/core/hle/service/am/process_creation.cpp b/src/core/hle/service/am/process_creation.cpp
index 81a8fb0b44..b5e31353a2 100644
--- a/src/core/hle/service/am/process_creation.cpp
+++ b/src/core/hle/service/am/process_creation.cpp
@@ -106,7 +106,7 @@ std::unique_ptr<Process> CreateApplicationProcess(std::vector<u8>& out_control,
out_control = nacp.GetRawBytes();
} else {
out_control.resize(sizeof(FileSys::RawNACP));
- std::fill(out_control.begin(), out_control.end(), 0);
+ std::fill(out_control.begin(), out_control.end(), (u8) 0);
}
auto& storage = system.GetContentProviderUnion();
diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp
index e84ab5cc35..a419fa4f08 100644
--- a/src/yuzu/game_list.cpp
+++ b/src/yuzu/game_list.cpp
@@ -364,7 +364,7 @@ GameList::GameList(FileSys::VirtualFilesystem vfs_, FileSys::ManualContentProvid
});
// We must register all custom types with the Qt Automoc system so that we are able to use
- // it with signals/slots. In this case, QList falls under the umbrells of custom types.
+ // it with signals/slots. In this case, QList falls under the umbrella of custom types.
qRegisterMetaType<QList<QStandardItem*>>("QList<QStandardItem*>");
layout->setContentsMargins(0, 0, 0, 0);
@@ -375,12 +375,12 @@ GameList::GameList(FileSys::VirtualFilesystem vfs_, FileSys::ManualContentProvid
pre_alpha_warning->setText(
tr("IMPORTANT: Eden is PRE-ALPHA SOFTWARE and is not meant to be used by or get shared to the public just yet; "
"Bugs and unfinished features are expected to be present at this stage."));
+ pre_alpha_warning->setWordWrap(true);
pre_alpha_warning->setOpenExternalLinks(true);
pre_alpha_warning->setStyleSheet(
QString::fromStdString("color: black; font-weight: bold;"));
warning_layout->addWidget(pre_alpha_warning);
- warning_layout->addStretch();
warning_layout->setContentsMargins(3, 3, 3, 3);
warning_widget = new QWidget;
warning_widget->setStyleSheet(QString::fromStdString("background-color: khaki;"));