Improves Externals, CI, CMake and Qt handling

This commit is contained in:
MaranBr 2025-05-20 15:57:19 -04:00
parent 1f8b8e0fa1
commit 1b2bccf51f
12 changed files with 266 additions and 275 deletions

View file

@ -25,7 +25,7 @@ if [ -z "$NPROC" ]; then
fi fi
if [ "$TARGET" = "appimage" ]; then if [ "$TARGET" = "appimage" ]; then
export EXTRA_CMAKE_FLAGS=(-DYUZU_CMD=OFF -DYUZU_ROOM_STANDALONE=OFF) export EXTRA_CMAKE_FLAGS=(-DCMAKE_INSTALL_PREFIX=/usr)
# Bundle required QT wayland libraries # Bundle required QT wayland libraries
export EXTRA_QT_PLUGINS="waylandcompositor" export EXTRA_QT_PLUGINS="waylandcompositor"
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so" export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
@ -34,35 +34,37 @@ else
export EXTRA_CMAKE_FLAGS=(-DYUZU_USE_PRECOMPILED_HEADERS=OFF) export EXTRA_CMAKE_FLAGS=(-DYUZU_USE_PRECOMPILED_HEADERS=OFF)
fi fi
if [ "$GITHUB_REF_TYPE" == "tag" ]; then # TODO(crueter): update checker
export EXTRA_CMAKE_FLAGS=($EXTRA_CMAKE_FLAGS -DENABLE_QT_UPDATE_CHECKER=ON) # if [ "$GITHUB_REF_TYPE" == "tag" ]; then
fi # export EXTRA_CMAKE_FLAGS=($EXTRA_CMAKE_FLAGS -DENABLE_QT_UPDATE_CHECKER=ON)
# fi
mkdir -p build && cd build mkdir -p build && cd build
cmake .. -G Ninja \ cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DENABLE_QT_TRANSLATION=ON \ -DENABLE_QT_TRANSLATION=ON \
-DUSE_DISCORD_PRESENCE=ON \ -DUSE_DISCORD_PRESENCE=ON \
-DUSE_CCACHE=ON \
-DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \ -DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \
-DCMAKE_C_FLAGS="$ARCH_FLAGS" \ -DCMAKE_C_FLAGS="$ARCH_FLAGS" \
-DYUZU_USE_BUNDLED_VCPKG=OFF \ -DYUZU_USE_BUNDLED_VCPKG=OFF \
-DYUZU_USE_BUNDLED_QT=OFF \ -DYUZU_USE_BUNDLED_QT=OFF \
-DUSE_SYSTEM_QT=ON \
-DYUZU_USE_BUNDLED_FFMPEG=OFF \ -DYUZU_USE_BUNDLED_FFMPEG=OFF \
-DYUZU_USE_BUNDLED_SDL2=OFF \ -DYUZU_USE_BUNDLED_SDL2=OFF \
-DYUZU_USE_EXTERNAL_SDL2=ON \ -DYUZU_USE_EXTERNAL_SDL2=ON \
-DYUZU_TESTS=OFF \ -DYUZU_TESTS=OFF \
<<<<<<< HEAD
-DYUZU_USE_LLVM_DEMANGLE=OFF \ -DYUZU_USE_LLVM_DEMANGLE=OFF \
-DYUZU_USE_QT_MULTIMEDIA=OFF \ -DYUZU_USE_QT_MULTIMEDIA=OFF \
-DYUZU_USE_QT_WEB_ENGINE=OFF \ -DYUZU_USE_QT_WEB_ENGINE=OFF \
-DENABLE_QT_TRANSLATION=ON \ -DENABLE_QT_TRANSLATION=ON \
-DUSE_DISCORD_PRESENCE=OFF \ -DUSE_DISCORD_PRESENCE=OFF \
-DYUZU_USE_FASTER_LD=OFF \ -DYUZU_USE_FASTER_LD=OFF \
=======
-DYUZU_USE_QT_MULTIMEDIA=ON \
-DYUZU_USE_QT_WEB_ENGINE=ON \
-DYUZU_USE_FASTER_LD=ON \
>>>>>>> cmake-qt-fix
-DYUZU_ENABLE_LTO=ON \ -DYUZU_ENABLE_LTO=ON \
-DCMAKE_LINKER=/usr/bin/mold \
"${EXTRA_CMAKE_FLAGS[@]}" "${EXTRA_CMAKE_FLAGS[@]}"
ninja -j${NPROC} ninja -j${NPROC}
@ -72,11 +74,3 @@ if [ -d "bin/Release" ]; then
else else
strip -s bin/* strip -s bin/*
fi fi
if [ "$TARGET" = "appimage" ]; then
ccache -s
else
ccache -s -v
fi
#ctest -VV -C Release

View file

@ -1,219 +1,150 @@
AppRun AppRun
eden.desktop
org.eden_emu.eden.desktop org.eden_emu.eden.desktop
bin/eden shared/bin/eden
shared/lib/lib.path shared/lib/lib.path
shared/lib/ld-linux-x86-64.so.2 shared/lib/ld-linux-x86-64.so.2
shared/lib/libQt6Widgets.so.6.9.0 shared/lib/libQt6Widgets.so.6.4.2
shared/lib/libQt6Network.so.6.9.0 shared/lib/libQt6DBus.so.6.4.2
shared/lib/libusb-1.0.so.0.5.0 shared/lib/libudev.so.1.7.5
shared/lib/libenet.so.7.0.6 shared/lib/libbrotlienc.so.1.0.9
shared/lib/libbrotlicommon.so.1.1.0 shared/lib/libbrotlidec.so.1.0.9
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/libssl.so.3
shared/lib/libcrypto.so.3 shared/lib/libcrypto.so.3
shared/lib/libavcodec.so.61.19.100 shared/lib/libavcodec.so.59.37.100
shared/lib/libavdevice.so.61.3.100 shared/lib/libavutil.so.57.28.100
shared/lib/libavfilter.so.10.4.100 shared/lib/libQt6Gui.so.6.4.2
shared/lib/libavformat.so.61.7.100 shared/lib/libQt6Core.so.6.4.2
shared/lib/libavutil.so.59.39.100 shared/lib/libstdc++.so.6.0.30
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/libm.so.6
shared/lib/libgcc_s.so.1 shared/lib/libgcc_s.so.1
shared/lib/libc.so.6 shared/lib/libc.so.6
shared/lib/libgssapi_krb5.so.2.2 shared/lib/libdbus-1.so.3.32.4
shared/lib/libproxy.so.0.5.9 shared/lib/libbrotlicommon.so.1.0.9
shared/lib/libudev.so.1.7.10 shared/lib/libswresample.so.4.7.100
shared/lib/libvpx.so.9.1.0 shared/lib/libvpx.so.7.1.0
shared/lib/libwebpmux.so.3.1.1 shared/lib/libwebpmux.so.3.0.10
shared/lib/liblzma.so.5.8.1 shared/lib/libwebp.so.7.1.5
shared/lib/libdav1d.so.7.0.0 shared/lib/liblzma.so.5.4.1
shared/lib/libopencore-amrwb.so.0.0.5 shared/lib/libdav1d.so.6.6.0
shared/lib/librsvg-2.so.2.60.0 shared/lib/librsvg-2.so.2.48.0
shared/lib/libcairo.so.2.11804.4 shared/lib/libgobject-2.0.so.0.7400.6
shared/lib/libgobject-2.0.so.0.8400.1 shared/lib/libglib-2.0.so.0.7400.6
shared/lib/libglib-2.0.so.0.8400.1 shared/lib/libcairo.so.2.11600.0
shared/lib/libsnappy.so.1.2.2 shared/lib/libzvbi.so.0.13.2
shared/lib/libaom.so.3.12.0 shared/lib/libz.so.1.2.13
shared/lib/libgsm.so.1.0.22 shared/lib/libsnappy.so.1.1.9
shared/lib/libjxl.so.0.11.1 shared/lib/libaom.so.3.6.0
shared/lib/libjxl_threads.so.0.11.1 shared/lib/libcodec2.so.1.0
shared/lib/libgsm.so.1.0.19
shared/lib/libjxl.so.0.7.0
shared/lib/libjxl_threads.so.0.7.0
shared/lib/libmp3lame.so.0.0.0 shared/lib/libmp3lame.so.0.0.0
shared/lib/libopencore-amrnb.so.0.0.5 shared/lib/libopenjp2.so.2.5.0
shared/lib/libopenjp2.so.2.5.3 shared/lib/libopus.so.0.8.0
shared/lib/librav1e.so.0.5.1
shared/lib/libshine.so.3.0.1
shared/lib/libspeex.so.1.5.2 shared/lib/libspeex.so.1.5.2
shared/lib/libSvtAv1Enc.so.1.4.1
shared/lib/libtheoraenc.so.1.1.2 shared/lib/libtheoraenc.so.1.1.2
shared/lib/libtheoradec.so.1.1.4 shared/lib/libtheoradec.so.1.1.4
shared/lib/libtwolame.so.0.0.0
shared/lib/libvorbis.so.0.4.9 shared/lib/libvorbis.so.0.4.9
shared/lib/libvorbisenc.so.2.0.12 shared/lib/libvorbisenc.so.2.0.12
shared/lib/libwebp.so.7.1.10
shared/lib/libx264.so.164 shared/lib/libx264.so.164
shared/lib/libx265.so.199
shared/lib/libxvidcore.so.4.3 shared/lib/libxvidcore.so.4.3
shared/lib/libvpl.so.2.14 shared/lib/libva.so.2.1700.0
shared/lib/libraw1394.so.11.1.0 shared/lib/libmfx.so.1.35
shared/lib/libavc1394.so.0.3.0 shared/lib/libva-drm.so.2.1700.0
shared/lib/librom1394.so.0.3.0 shared/lib/libva-x11.so.2.1700.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/libvdpau.so.1.0.0
shared/lib/libsoxr.so.0.1.2 shared/lib/libX11.so.6.4.0
shared/lib/libdrm.so.2.4.0
shared/lib/libOpenCL.so.1.0.0
shared/lib/libEGL.so.1.1.0 shared/lib/libEGL.so.1.1.0
shared/lib/libxkbcommon.so.0.8.1 shared/lib/libfontconfig.so.1.12.0
shared/lib/libpng16.so.16.47.0 shared/lib/libxkbcommon.so.0.0.0
shared/lib/libmd4c.so.0.5.2 shared/lib/libGLX.so.0.0.0
shared/lib/libdbus-1.so.3.38.3 shared/lib/libOpenGL.so.0.0.0
shared/lib/libGLdispatch.so.0.0.0 shared/lib/libpng16.so.16.39.0
shared/lib/libdouble-conversion.so.3.3.0 shared/lib/libharfbuzz.so.0.60000.0
shared/lib/libmd4c.so.0.4.8
shared/lib/libfreetype.so.6.18.3
shared/lib/libicui18n.so.72.1
shared/lib/libicuuc.so.72.1
shared/lib/libdouble-conversion.so.3.1
shared/lib/libb2.so.1.0.4 shared/lib/libb2.so.1.0.4
shared/lib/libpcre2-16.so.0.14.0 shared/lib/libpcre2-16.so.0.11.2
shared/lib/libkrb5.so.3.3 shared/lib/libzstd.so.1.5.4
shared/lib/libk5crypto.so.3.1 shared/lib/libsystemd.so.0.35.0
shared/lib/libcom_err.so.2.1 shared/lib/libsoxr.so.0.1.2
shared/lib/libkrb5support.so.0.1 shared/lib/libcairo-gobject.so.2.11600.0
shared/lib/libkeyutils.so.1.10 shared/lib/libgdk_pixbuf-2.0.so.0.4200.10
shared/lib/libresolv.so.2 shared/lib/libgio-2.0.so.0.7400.6
shared/lib/libproxy/libpxbackend-1.0.so shared/lib/libxml2.so.2.9.14
shared/lib/libcap.so.2.75 shared/lib/libpangocairo-1.0.so.0.5000.12
shared/lib/libgio-2.0.so.0.8400.1 shared/lib/libpango-1.0.so.0.5000.12
shared/lib/libgdk_pixbuf-2.0.so.0.4200.12 shared/lib/libffi.so.8.1.2
shared/lib/libpangocairo-1.0.so.0.5600.3 shared/lib/libpcre2-8.so.0.11.2
shared/lib/libpango-1.0.so.0.5600.3 shared/lib/libpixman-1.so.0.42.2
shared/lib/libXrender.so.1.3.0 shared/lib/libxcb-shm.so.0.0.0
shared/lib/libxcb.so.1.1.0
shared/lib/libxcb-render.so.0.0.0 shared/lib/libxcb-render.so.0.0.0
shared/lib/libpixman-1.so.0.44.2 shared/lib/libXrender.so.1.3.0
shared/lib/libffi.so.8.1.4 shared/lib/libXext.so.6.4.0
shared/lib/libpcre2-8.so.0.14.0 shared/lib/libhwy.so.1.0.3
shared/lib/libjxl_cms.so.0.11.1 shared/lib/liblcms2.so.2.0.14
shared/lib/libhwy.so.1.2.0
shared/lib/libogg.so.0.8.5 shared/lib/libogg.so.0.8.5
shared/lib/libsharpyuv.so.0.1.1 shared/lib/libnuma.so.1.0.0
shared/lib/libdb-5.3.so shared/lib/libpthread.so.0
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/libXfixes.so.3.1.0
shared/lib/libX11-xcb.so.1.0.0 shared/lib/libX11-xcb.so.1.0.0
shared/lib/libxcb-dri3.so.0.1.0 shared/lib/libxcb-dri3.so.0.1.0
shared/lib/libsystemd.so.0.40.0 shared/lib/libGLdispatch.so.0.0.0
shared/lib/libcurl.so.4.8.0 shared/lib/libexpat.so.1.8.10
shared/lib/libduktape.so.207.20700 shared/lib/libgraphite2.so.3.2.1
shared/lib/libgmodule-2.0.so.0.8400.1 shared/lib/libicudata.so.72.1
shared/lib/libgomp.so.1.0.0
shared/lib/libcap.so.2.66
shared/lib/libgcrypt.so.20.4.1
shared/lib/liblz4.so.1.9.4
shared/lib/libgmodule-2.0.so.0.7400.6
shared/lib/libjpeg.so.62.3.0
shared/lib/libmount.so.1.1.0 shared/lib/libmount.so.1.1.0
shared/lib/libjpeg.so.8.3.2 shared/lib/libselinux.so.1
shared/lib/libtiff.so.6.1.0 shared/lib/libpangoft2-1.0.so.0.5000.12
shared/lib/libpangoft2-1.0.so.0.5600.3 shared/lib/libfribidi.so.0.4.0
shared/lib/libthai.so.0.3.1 shared/lib/libthai.so.0.3.1
shared/lib/libsndfile.so.1.0.37 shared/lib/libXau.so.6.0.0
shared/lib/libasyncns.so.0.3.1 shared/lib/libXdmcp.so.6.0.0
shared/lib/libnghttp3.so.9.2.6 shared/lib/libgpg-error.so.0.33.1
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/libblkid.so.1.1.0
shared/lib/libjbig.so.2.1
shared/lib/libdatrie.so.1.4.0 shared/lib/libdatrie.so.1.4.0
shared/lib/libFLAC.so.14.0.0 shared/lib/libbsd.so.0.11.7
shared/lib/libSDL3.so.0.2.10 shared/lib/libmd.so.0.0.5
shared/lib/libvulkan.so.1.3.239
share/vulkan/icd.d/intel_hasvk_icd.x86_64.json share/vulkan/icd.d/intel_hasvk_icd.x86_64.json
shared/lib/libvulkan_intel_hasvk.so shared/lib/libvulkan_intel_hasvk.so
shared/lib/libwayland-client.so.0.21.0
shared/lib/libxcb-present.so.0.0.0 shared/lib/libxcb-present.so.0.0.0
shared/lib/libxcb-xfixes.so.0.0.0
shared/lib/libxcb-sync.so.1.0.0 shared/lib/libxcb-sync.so.1.0.0
shared/lib/libxcb-randr.so.0.1.0 shared/lib/libxcb-randr.so.0.1.0
shared/lib/libxshmfence.so.1.0.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 share/vulkan/icd.d/intel_icd.x86_64.json
shared/lib/libvulkan_intel.so shared/lib/libvulkan_intel.so
share/vulkan/icd.d/nouveau_icd.x86_64.json share/vulkan/icd.d/lvp_icd.x86_64.json
shared/lib/libvulkan_nouveau.so shared/lib/libvulkan_lvp.so
shared/lib/libLLVM-15.so.1
shared/lib/libedit.so.2.0.70
shared/lib/libz3.so.4
shared/lib/libtinfo.so.6.4
share/vulkan/icd.d/radeon_icd.x86_64.json share/vulkan/icd.d/radeon_icd.x86_64.json
shared/lib/libvulkan_radeon.so shared/lib/libvulkan_radeon.so
shared/lib/libLLVM.so.19.1 shared/lib/libdrm_amdgpu.so.1.0.0
shared/lib/libelf-0.192.so shared/lib/libelf-0.188.so
shared/lib/libdrm_amdgpu.so.1.124.0 shared/lib/libVkLayer_MESA_device_select.so
shared/lib/libedit.so.0.0.75
shared/lib/libncursesw.so.6.5
bin/qt.conf bin/qt.conf
shared/lib/qt6/plugins/platforms/libqeglfs.so shared/lib/qt6/plugins/platforms/libqeglfs.so
shared/lib/qt6/plugins/platforms/libqlinuxfb.so shared/lib/qt6/plugins/platforms/libqlinuxfb.so
@ -225,29 +156,57 @@ shared/lib/qt6/plugins/platforms/libqvnc.so
shared/lib/qt6/plugins/platforms/libqwayland-egl.so shared/lib/qt6/plugins/platforms/libqwayland-egl.so
shared/lib/qt6/plugins/platforms/libqwayland-generic.so shared/lib/qt6/plugins/platforms/libqwayland-generic.so
shared/lib/qt6/plugins/platforms/libqxcb.so shared/lib/qt6/plugins/platforms/libqxcb.so
shared/lib/libQt6XcbQpa.so.6.9.0 shared/lib/libQt6WaylandClient.so.6.4.2
shared/lib/libxcb-cursor.so.0.0.0 shared/lib/libwayland-cursor.so.0.21.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/libqgtk3.so
shared/lib/qt6/plugins/platformthemes/libqt6ct.so shared/lib/libgtk-3.so.0.2406.32
shared/lib/qt6/plugins/platformthemes/libqxdgdesktopportal.so shared/lib/libgdk-3.so.0.2406.32
shared/lib/libqt6ct-common.so.0.10 shared/lib/libatk-1.0.so.0.24609.1
etc/fonts/fonts.conf shared/lib/libepoxy.so.0.0.0
shared/lib/libXi.so.6.1.0 shared/lib/libXi.so.6.1.0
shared/lib/libwayland-cursor.so.0.23.1 shared/lib/libatk-bridge-2.0.so.0.0.0
shared/lib/libwayland-egl.so.1.23.1 shared/lib/libwayland-egl.so.1.21.0
shared/lib/libXcursor.so.1.0.2 shared/lib/libXcursor.so.1.0.2
shared/lib/libXdamage.so.1.1.0
shared/lib/libXcomposite.so.1.0.0
shared/lib/libXrandr.so.2.2.0 shared/lib/libXrandr.so.2.2.0
shared/lib/qt6/plugins/styles/libqt6ct-style.so shared/lib/libXinerama.so.1.0.0
shared/lib/libdl.so.2
shared/lib/libatspi.so.0.0.1
share/glib-2.0/schemas/gschemas.compiled
shared/lib/gio/modules/giomodule.cache
shared/lib/gio/modules/libdconfsettings.so
shared/lib/gio/modules/libgvfsdbus.so
shared/lib/gvfs/libgvfscommon.so
share/X11/xkb/rules/evdev
share/X11/xkb/keycodes/evdev
share/X11/xkb/keycodes/aliases
share/X11/xkb/types/complete
share/X11/xkb/types/basic
share/X11/xkb/types/mousekeys
share/X11/xkb/types/pc
share/X11/xkb/types/iso9995
share/X11/xkb/types/level5
share/X11/xkb/types/extra
share/X11/xkb/types/numpad
share/X11/xkb/compat/complete
share/X11/xkb/compat/basic
share/X11/xkb/compat/ledcaps
share/X11/xkb/compat/lednum
share/X11/xkb/compat/iso9995
share/X11/xkb/compat/mousekeys
share/X11/xkb/compat/accessx
share/X11/xkb/compat/misc
share/X11/xkb/compat/ledscroll
share/X11/xkb/compat/xfree86
share/X11/xkb/compat/level5
share/X11/xkb/compat/caps
share/X11/xkb/symbols/pc
share/X11/xkb/symbols/srvr_ctrl
share/X11/xkb/symbols/keypad
share/X11/xkb/symbols/altwin
share/X11/xkb/symbols/us
share/X11/xkb/symbols/inet
shared/lib/qt6/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so shared/lib/qt6/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so
shared/lib/qt6/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so shared/lib/qt6/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so
shared/lib/qt6/plugins/iconengines/libqsvgicon.so shared/lib/qt6/plugins/iconengines/libqsvgicon.so
@ -255,5 +214,37 @@ shared/lib/qt6/plugins/imageformats/libqgif.so
shared/lib/qt6/plugins/imageformats/libqico.so shared/lib/qt6/plugins/imageformats/libqico.so
shared/lib/qt6/plugins/imageformats/libqjpeg.so shared/lib/qt6/plugins/imageformats/libqjpeg.so
shared/lib/qt6/plugins/imageformats/libqsvg.so shared/lib/qt6/plugins/imageformats/libqsvg.so
shared/lib/libQt6Svg.so.6.9.0 shared/lib/libQt6Svg.so.6.4.2
etc/fonts/fonts.conf
shared/lib/qt6/plugins/wayland-shell-integration/libfullscreen-shell-v1.so
shared/lib/qt6/plugins/wayland-shell-integration/libivi-shell.so
shared/lib/qt6/plugins/wayland-shell-integration/libqt-shell.so
shared/lib/qt6/plugins/wayland-shell-integration/libwl-shell-plugin.so
shared/lib/qt6/plugins/wayland-shell-integration/libxdg-shell.so
shared/lib/qt6/plugins/wayland-graphics-integration-client/libdmabuf-server.so
shared/lib/qt6/plugins/wayland-graphics-integration-client/libdrm-egl-server.so
shared/lib/qt6/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so
shared/lib/qt6/plugins/wayland-graphics-integration-client/libshm-emulation-server.so
shared/lib/qt6/plugins/wayland-graphics-integration-client/libvulkan-server.so
shared/lib/libQt6WaylandEglClientHwIntegration.so.6.4.2
shared/lib/libQt6OpenGL.so.6.4.2
share/glvnd/egl_vendor.d/50_mesa.json
shared/lib/libEGL_mesa.so.0.0.0
shared/lib/libgbm.so.1.0.0
shared/lib/libglapi.so.0.0.0
shared/lib/libxcb-dri2.so.0.0.0
shared/lib/libwayland-server.so.0.21.0
shared/lib/dri/swrast_dri.so
shared/lib/libsensors.so.5.0.0
shared/lib/libdrm_radeon.so.1.0.1
shared/lib/libdrm_nouveau.so.2.0.0
shared/lib/libdrm_intel.so.1.0.0
shared/lib/libpciaccess.so.0.11.1
shared/lib/qt6/plugins/wayland-decoration-client/libbradient.so
shared/lib/gtk-3.0/modules/libcanberra-gtk3-module.so
shared/lib/libcanberra-gtk3.so.0.1.9
shared/lib/libcanberra.so.0.2.5
shared/lib/libvorbisfile.so.3.3.8
shared/lib/libtdb.so.1.4.8
shared/lib/libltdl.so.7.3.2
shared/lib/libXss.so.1.0.0 shared/lib/libXss.so.1.0.0

View file

@ -3,6 +3,8 @@
# SPDX-FileCopyrightText: 2025 eden Emulator Project # SPDX-FileCopyrightText: 2025 eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# TODO: create a lighter version based on pflyly's script
# This script assumes you're in the source directory # This script assumes you're in the source directory
set -ex set -ex
@ -10,6 +12,8 @@ export APPIMAGE_EXTRACT_AND_RUN=1
export BASE_ARCH="$(uname -m)" export BASE_ARCH="$(uname -m)"
export ARCH="$BASE_ARCH" export ARCH="$BASE_ARCH"
export BUILDDIR="$2"
LIB4BN="https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bin" LIB4BN="https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bin"
URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-$ARCH" URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-$ARCH"
@ -19,9 +23,14 @@ if [ "$ARCH" = 'x86_64' ]; then
fi fi
fi fi
if [ "$BUILDDIR" = '' ]
then
BUILDDIR=build
fi
EDEN_TAG=$(git describe --tags --abbrev=0) EDEN_TAG=$(git describe --tags --abbrev=0)
echo "Making stable \"$EDEN_TAG\" build" echo "Making stable \"$EDEN_TAG\" build"
git checkout "$EDEN_TAG" # git checkout "$EDEN_TAG"
VERSION="$(echo "$EDEN_TAG")" VERSION="$(echo "$EDEN_TAG")"
# NOW MAKE APPIMAGE # NOW MAKE APPIMAGE
@ -42,10 +51,13 @@ cp ../dist/eden.svg ./eden.svg
ln -sf ./eden.svg ./.DirIcon ln -sf ./eden.svg ./.DirIcon
if [ "$DEVEL" = 'true' ]; then # TODO(crueter): Nightly
sed -i 's|Name=Eden|Name=Eden Nightly|' ./eden.desktop # if [ "$DEVEL" = 'true' ]; then
UPINFO="$(echo "$UPINFO" | sed 's|latest|nightly|')" # sed -i 's|Name=Eden|Name=Eden Nightly|' ./eden.desktop
fi # UPINFO="$(echo "$UPINFO" | sed 's|latest|nightly|')"
# fi
UPINFO='gh-releases-zsync|eden-emulator|Releases|latest|*.AppImage.zsync'
LIBDIR="/usr/lib" LIBDIR="/usr/lib"
# some distros are weird and use a subdir # some distros are weird and use a subdir
@ -59,7 +71,7 @@ fi
wget --retry-connrefused --tries=30 "$LIB4BN" -O ./lib4bin wget --retry-connrefused --tries=30 "$LIB4BN" -O ./lib4bin
chmod +x ./lib4bin chmod +x ./lib4bin
xvfb-run -a -- ./lib4bin -p -v -e -s -k \ xvfb-run -a -- ./lib4bin -p -v -e -s -k \
../build/bin/eden* \ ../$BUILDDIR/bin/eden* \
$LIBDIR/lib*GL*.so* \ $LIBDIR/lib*GL*.so* \
$LIBDIR/libSDL2*.so* \ $LIBDIR/libSDL2*.so* \
$LIBDIR/dri/* \ $LIBDIR/dri/* \

View file

@ -1,27 +1,24 @@
echo off @echo off
set chain=%1 set chain=%1
if not defined DevEnvDir ( if not defined DevEnvDir (
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" %chain% CALL "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" %chain%
) )
mkdir build CALL mkdir build
cmake -S . -B build\%chain% ^ CALL cmake -S . -B build\%chain% ^
-DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_BUILD_TYPE=Release ^
-DYUZU_USE_BUNDLED_QT=ON ^
-DENABLE_QT_TRANSLATION=ON ^ -DENABLE_QT_TRANSLATION=ON ^
-DUSE_DISCORD_PRESENCE=ON ^ -DUSE_DISCORD_PRESENCE=ON ^
-DYUZU_USE_BUNDLED_QT=ON ^
-DYUZU_USE_QT_MULTIMEDIA=ON ^
-DYUZU_USE_QT_WEB_ENGINE=ON ^
-DYUZU_USE_BUNDLED_VCPKG=ON ^ -DYUZU_USE_BUNDLED_VCPKG=ON ^
-DYUZU_USE_BUNDLED_SDL2=ON ^ -DYUZU_USE_BUNDLED_SDL2=ON ^
-DYUZU_ENABLE_LTO=ON ^
-G "Ninja" ^ -G "Ninja" ^
-DYUZU_TESTS=OFF ^ -DYUZU_TESTS=OFF
-DCMAKE_C_COMPILER_LAUNCHER=ccache ^
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^
-DCMAKE_TOOLCHAIN_FILE="%CD%\CMakeModules\MSVCCache.cmake" ^
-DUSE_CCACHE=ON
cmake --build build\%chain% CALL cmake --build build\%chain%
ccache -s -v

View file

@ -1,4 +1,4 @@
echo off @echo off
set chain=%1 set chain=%1
set qt_ver=%2 set qt_ver=%2
@ -11,21 +11,16 @@ CALL mkdir build
CALL cmake -S . -B build\%chain% ^ CALL cmake -S . -B build\%chain% ^
-DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_BUILD_TYPE=Release ^
-DYUZU_USE_BUNDLED_QT=ON ^
-DENABLE_QT_TRANSLATION=ON ^ -DENABLE_QT_TRANSLATION=ON ^
-DUSE_DISCORD_PRESENCE=ON ^ -DUSE_DISCORD_PRESENCE=ON ^
-DYUZU_USE_BUNDLED_QT=OFF ^
-DYUZU_USE_QT_MULTIMEDIA=ON ^
-DYUZU_USE_QT_WEB_ENGINE=ON ^
-DYUZU_USE_BUNDLED_VCPKG=ON ^ -DYUZU_USE_BUNDLED_VCPKG=ON ^
-DYUZU_USE_BUNDLED_SDL2=ON ^ -DYUZU_USE_BUNDLED_SDL2=ON ^
-DYUZU_ENABLE_LTO=ON ^
-G "Ninja" ^ -G "Ninja" ^
-DYUZU_TESTS=OFF ^ -DYUZU_TESTS=OFF ^
-DUSE_BUNDLED_QT=OFF ^ -DQt6_DIR=C:\Qt\%qt_ver%\msvc2022_64
-DUSE_SYSTEM_QT=ON ^
-DCMAKE_PREFIX_PATH=C:\Qt\%qt_ver%\msvc2022_64 ^
-DCMAKE_C_COMPILER_LAUNCHER=ccache ^
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^
-DCMAKE_TOOLCHAIN_FILE="%CD%\CMakeModules\MSVCCache.cmake" ^
-DUSE_CCACHE=ON
CALL cmake --build build\%chain% CALL cmake --build build\%chain%
CALL ccache -s -v

View file

@ -12,31 +12,29 @@ $ARTIFACTS_DIR = "artifacts"
New-Item -ItemType Directory -Path $ARTIFACTS_DIR -Force New-Item -ItemType Directory -Path $ARTIFACTS_DIR -Force
New-Item -ItemType Directory -Path $RELEASE_DIST -Force New-Item -ItemType Directory -Path $RELEASE_DIST -Force
Copy-Item -Path "build/$target/bin/*" -Destination "$RELEASE_DIST" -Recurse -ErrorAction SilentlyContinue -Force
if ($debug -eq "yes") { if ($debug -eq "yes") {
mkdir -p pdb mkdir -p pdb
$BUILD_PDB = "eden-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" Get-ChildItem -Path "$RELEASE_DIST" -Filter "*.pdb" -Recurse | Move-Item -Destination .\pdb -ErrorAction SilentlyContinue -Force
Get-ChildItem "build/$target/bin/" -Recurse -Filter "*.pdb" | Copy-Item -destination .\pdb -ErrorAction SilentlyContinue
if (Test-Path -Path ".\pdb\*.pdb") { if (Test-Path -Path ".\pdb\*.pdb") {
$BUILD_PDB = "eden-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip"
7z a -tzip $BUILD_PDB .\pdb\*.pdb 7z a -tzip $BUILD_PDB .\pdb\*.pdb
Move-Item $BUILD_PDB $ARTIFACTS_DIR/ -ErrorAction SilentlyContinue Move-Item -Path $BUILD_PDB -Destination $ARTIFACTS_DIR/ -ErrorAction SilentlyContinue -Force
} }
} else {
Remove-Item -Force "$RELEASE_DIST\*.pdb"
} }
if ($debug -ne "yes") {
Copy-Item "build/$target/bin/Release/*" -Destination "$RELEASE_DIST" -Recurse -ErrorAction SilentlyContinue Remove-Item "$RELEASE_DIST\*.pdb" -Recurse -ErrorAction SilentlyContinue -Force
if (-not $?) {
# Try without Release subfolder if that doesn't exist
Copy-Item "build/$target/bin/*" -Destination "$RELEASE_DIST" -Recurse -ErrorAction SilentlyContinue
} }
Move-Item -Path "$RELEASE_DIST\Release\*" -Destination "$RELEASE_DIST" -ErrorAction SilentlyContinue -Force
Remove-Item "$RELEASE_DIST\Release" -ErrorAction SilentlyContinue -Force
$BUILD_ZIP = "eden-windows-msvc-$GITDATE-$GITREV.zip" $BUILD_ZIP = "eden-windows-msvc-$GITDATE-$GITREV.zip"
7z a -tzip $BUILD_ZIP $RELEASE_DIST\* 7z a -tzip $BUILD_ZIP $RELEASE_DIST\*
Move-Item -Path $BUILD_ZIP -Destination $ARTIFACTS_DIR/ -ErrorAction SilentlyContinue -Force
Move-Item $BUILD_ZIP $ARTIFACTS_DIR/ -Force #-ErrorAction SilentlyContinue
Copy-Item "LICENSE*" -Destination "$RELEASE_DIST" -ErrorAction SilentlyContinue Copy-Item "LICENSE*" -Destination "$RELEASE_DIST" -ErrorAction SilentlyContinue
Copy-Item "README*" -Destination "$RELEASE_DIST" -ErrorAction SilentlyContinue Copy-Item "README*" -Destination "$RELEASE_DIST" -ErrorAction SilentlyContinue

View file

@ -368,11 +368,6 @@ if (UNIX AND NOT APPLE)
find_package(gamemode 1.7 MODULE) find_package(gamemode 1.7 MODULE)
endif() endif()
# Please consider this as a stub
if(ENABLE_QT6 AND Qt6_LOCATION)
list(APPEND CMAKE_PREFIX_PATH "${Qt6_LOCATION}")
endif()
# find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the YUZU_find_package # find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the YUZU_find_package
if (ENABLE_SDL2) if (ENABLE_SDL2)
if (YUZU_USE_BUNDLED_SDL2) if (YUZU_USE_BUNDLED_SDL2)
@ -405,8 +400,14 @@ endif()
add_subdirectory(externals) add_subdirectory(externals)
if (ENABLE_QT) if (ENABLE_QT)
if (NOT USE_SYSTEM_QT) if (YUZU_USE_BUNDLED_QT)
download_qt(6.8.3) download_qt(6.8.3)
else()
message(STATUS "Using system Qt")
if (NOT Qt6_DIR)
set(Qt6_DIR "" CACHE PATH "Additional path to search for Qt6 libraries like C:/Qt/6.8.3/msvc2022_64/lib/cmake/Qt6")
endif()
list(APPEND CMAKE_PREFIX_PATH "${Qt6_DIR}")
endif() endif()
find_package(Qt6 REQUIRED COMPONENTS Widgets Multimedia Concurrent) find_package(Qt6 REQUIRED COMPONENTS Widgets Multimedia Concurrent)
@ -433,6 +434,7 @@ if (ENABLE_QT)
if (NOT DEFINED QT_HOST_PATH) if (NOT DEFINED QT_HOST_PATH)
set(QT_HOST_PATH "${QT_TARGET_PATH}") set(QT_HOST_PATH "${QT_TARGET_PATH}")
endif() endif()
message(STATUS "Using target Qt at ${QT_TARGET_PATH}") message(STATUS "Using target Qt at ${QT_TARGET_PATH}")
message(STATUS "Using host Qt at ${QT_HOST_PATH}") message(STATUS "Using host Qt at ${QT_HOST_PATH}")
endif() endif()
@ -648,13 +650,15 @@ endif()
# https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html # https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
# https://www.freedesktop.org/software/appstream/docs/ # https://www.freedesktop.org/software/appstream/docs/
if(ENABLE_QT AND UNIX AND NOT APPLE) if(ENABLE_QT AND UNIX AND NOT APPLE)
install(FILES "dist/org.yuzu_emu.yuzu.desktop" install(FILES "dist/eden.desktop"
DESTINATION "share/applications") DESTINATION "share/applications")
install(FILES "dist/eden.svg" install(FILES "dist/eden.svg"
DESTINATION "share/icons/hicolor/scalable/apps" DESTINATION "share/icons/hicolor/scalable/apps"
RENAME "org.yuzu_emu.eden.svg") RENAME "eden.svg")
install(FILES "dist/org.yuzu_emu.yuzu.xml"
# TODO: these files need to be updated.
install(FILES "dist/eden.xml"
DESTINATION "share/mime/packages") DESTINATION "share/mime/packages")
install(FILES "dist/org.yuzu_emu.yuzu.metainfo.xml" install(FILES "dist/eden.metainfo.xml"
DESTINATION "share/metainfo") DESTINATION "share/metainfo")
endif() endif()

View file

@ -72,7 +72,7 @@ function(determine_qt_parameters target host_out type_out arch_out arch_path_out
elseif ("x86_64" IN_LIST ARCHITECTURE) elseif ("x86_64" IN_LIST ARCHITECTURE)
set(arch_path "msvc2022_64") set(arch_path "msvc2022_64")
else() else()
message(FATAL_ERROR "Unsupported bundled Qt architecture. Enable USE_SYSTEM_QT and provide your own.") message(FATAL_ERROR "Unsupported bundled Qt architecture. Disable YUZU_USE_BUNDLED_QT and provide your own.")
endif() endif()
set(arch "win64_${arch_path}") set(arch "win64_${arch_path}")
@ -83,7 +83,7 @@ function(determine_qt_parameters target host_out type_out arch_out arch_path_out
endif() endif()
set(host_arch "win64_${host_arch_path}") set(host_arch "win64_${host_arch_path}")
else() else()
message(FATAL_ERROR "Unsupported bundled Qt toolchain. Enable USE_SYSTEM_QT and provide your own.") message(FATAL_ERROR "Unsupported bundled Qt toolchain. Disable YUZU_USE_BUNDLED_QT and provide your own.")
endif() endif()
endif() endif()
elseif (APPLE) elseif (APPLE)

View file

@ -7,7 +7,7 @@ Type=Application
Name=eden Name=eden
GenericName=Switch Emulator GenericName=Switch Emulator
Comment=Nintendo Switch video game console emulator Comment=Nintendo Switch video game console emulator
Icon=org.yuzu_emu.eden Icon=eden
TryExec=eden TryExec=eden
Exec=eden %f Exec=eden %f
Categories=Game;Emulator;Qt; Categories=Game;Emulator;Qt;

View file

@ -450,12 +450,12 @@ if(UNIX AND NOT APPLE)
install(TARGETS yuzu) install(TARGETS yuzu)
endif() endif()
if (WIN32 AND USE_SYSTEM_QT AND QT_VERSION VERSION_GREATER_EQUAL 6) if (WIN32 AND NOT YUZU_USE_BUNDLED_QT AND QT_VERSION VERSION_GREATER_EQUAL 6)
set(YUZU_EXE_DIR "$<TARGET_FILE_DIR:yuzu>") set(YUZU_EXE_DIR "$<TARGET_FILE_DIR:yuzu>")
add_custom_command(TARGET yuzu POST_BUILD COMMAND ${WINDEPLOYQT_EXECUTABLE} "${YUZU_EXE_DIR}/eden.exe" --dir "${YUZU_EXE_DIR}" --libdir "${YUZU_EXE_DIR}" --plugindir "${YUZU_EXE_DIR}/plugins" --no-compiler-runtime --no-opengl-sw --no-system-d3d-compiler --no-translations --verbose 0) add_custom_command(TARGET yuzu POST_BUILD COMMAND ${WINDEPLOYQT_EXECUTABLE} "${YUZU_EXE_DIR}/eden.exe" --dir "${YUZU_EXE_DIR}" --libdir "${YUZU_EXE_DIR}" --plugindir "${YUZU_EXE_DIR}/plugins" --no-compiler-runtime --no-opengl-sw --no-system-d3d-compiler --no-translations --verbose 0)
endif() endif()
if (NOT USE_SYSTEM_QT) if (YUZU_USE_BUNDLED_QT)
include(CopyYuzuQt6Deps) include(CopyYuzuQt6Deps)
copy_yuzu_Qt6_deps(yuzu) copy_yuzu_Qt6_deps(yuzu)
endif() endif()