diff --git a/.ci/linux/build.sh b/.ci/linux/build.sh index 70917aec6f..4567cca816 100755 --- a/.ci/linux/build.sh +++ b/.ci/linux/build.sh @@ -25,7 +25,7 @@ if [ -z "$NPROC" ]; then fi 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 export EXTRA_QT_PLUGINS="waylandcompositor" export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so" @@ -34,35 +34,37 @@ else export EXTRA_CMAKE_FLAGS=(-DYUZU_USE_PRECOMPILED_HEADERS=OFF) fi -if [ "$GITHUB_REF_TYPE" == "tag" ]; then - export EXTRA_CMAKE_FLAGS=($EXTRA_CMAKE_FLAGS -DENABLE_QT_UPDATE_CHECKER=ON) -fi +# TODO(crueter): update checker +# if [ "$GITHUB_REF_TYPE" == "tag" ]; then +# export EXTRA_CMAKE_FLAGS=($EXTRA_CMAKE_FLAGS -DENABLE_QT_UPDATE_CHECKER=ON) +# fi mkdir -p build && cd build cmake .. -G Ninja \ -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_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=OFF \ -DYUZU_USE_EXTERNAL_SDL2=ON \ -DYUZU_TESTS=OFF \ +<<<<<<< HEAD -DYUZU_USE_LLVM_DEMANGLE=OFF \ -DYUZU_USE_QT_MULTIMEDIA=OFF \ -DYUZU_USE_QT_WEB_ENGINE=OFF \ -DENABLE_QT_TRANSLATION=ON \ -DUSE_DISCORD_PRESENCE=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 \ - -DCMAKE_LINKER=/usr/bin/mold \ "${EXTRA_CMAKE_FLAGS[@]}" ninja -j${NPROC} @@ -72,11 +74,3 @@ if [ -d "bin/Release" ]; then else strip -s bin/* fi - -if [ "$TARGET" = "appimage" ]; then - ccache -s -else - ccache -s -v -fi - -#ctest -VV -C Release diff --git a/.ci/linux/eden.dwfsprof b/.ci/linux/eden.dwfsprof index 377d5fec89..bc360f0d46 100644 --- a/.ci/linux/eden.dwfsprof +++ b/.ci/linux/eden.dwfsprof @@ -1,219 +1,150 @@ AppRun +eden.desktop org.eden_emu.eden.desktop -bin/eden +shared/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/libQt6Widgets.so.6.4.2 +shared/lib/libQt6DBus.so.6.4.2 +shared/lib/libudev.so.1.7.5 +shared/lib/libbrotlienc.so.1.0.9 +shared/lib/libbrotlidec.so.1.0.9 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/libavcodec.so.59.37.100 +shared/lib/libavutil.so.57.28.100 +shared/lib/libQt6Gui.so.6.4.2 +shared/lib/libQt6Core.so.6.4.2 +shared/lib/libstdc++.so.6.0.30 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/libdbus-1.so.3.32.4 +shared/lib/libbrotlicommon.so.1.0.9 +shared/lib/libswresample.so.4.7.100 +shared/lib/libvpx.so.7.1.0 +shared/lib/libwebpmux.so.3.0.10 +shared/lib/libwebp.so.7.1.5 +shared/lib/liblzma.so.5.4.1 +shared/lib/libdav1d.so.6.6.0 +shared/lib/librsvg-2.so.2.48.0 +shared/lib/libgobject-2.0.so.0.7400.6 +shared/lib/libglib-2.0.so.0.7400.6 +shared/lib/libcairo.so.2.11600.0 +shared/lib/libzvbi.so.0.13.2 +shared/lib/libz.so.1.2.13 +shared/lib/libsnappy.so.1.1.9 +shared/lib/libaom.so.3.6.0 +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/libopencore-amrnb.so.0.0.5 -shared/lib/libopenjp2.so.2.5.3 +shared/lib/libopenjp2.so.2.5.0 +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/libSvtAv1Enc.so.1.4.1 shared/lib/libtheoraenc.so.1.1.2 shared/lib/libtheoradec.so.1.1.4 +shared/lib/libtwolame.so.0.0.0 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/libx265.so.199 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/libva.so.2.1700.0 +shared/lib/libmfx.so.1.35 +shared/lib/libva-drm.so.2.1700.0 +shared/lib/libva-x11.so.2.1700.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/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/libfontconfig.so.1.12.0 +shared/lib/libxkbcommon.so.0.0.0 +shared/lib/libGLX.so.0.0.0 +shared/lib/libOpenGL.so.0.0.0 +shared/lib/libpng16.so.16.39.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/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/libpcre2-16.so.0.11.2 +shared/lib/libzstd.so.1.5.4 +shared/lib/libsystemd.so.0.35.0 +shared/lib/libsoxr.so.0.1.2 +shared/lib/libcairo-gobject.so.2.11600.0 +shared/lib/libgdk_pixbuf-2.0.so.0.4200.10 +shared/lib/libgio-2.0.so.0.7400.6 +shared/lib/libxml2.so.2.9.14 +shared/lib/libpangocairo-1.0.so.0.5000.12 +shared/lib/libpango-1.0.so.0.5000.12 +shared/lib/libffi.so.8.1.2 +shared/lib/libpcre2-8.so.0.11.2 +shared/lib/libpixman-1.so.0.42.2 +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/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/libXrender.so.1.3.0 +shared/lib/libXext.so.6.4.0 +shared/lib/libhwy.so.1.0.3 +shared/lib/liblcms2.so.2.0.14 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/libnuma.so.1.0.0 +shared/lib/libpthread.so.0 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/libGLdispatch.so.0.0.0 +shared/lib/libexpat.so.1.8.10 +shared/lib/libgraphite2.so.3.2.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/libjpeg.so.8.3.2 -shared/lib/libtiff.so.6.1.0 -shared/lib/libpangoft2-1.0.so.0.5600.3 +shared/lib/libselinux.so.1 +shared/lib/libpangoft2-1.0.so.0.5000.12 +shared/lib/libfribidi.so.0.4.0 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/libXau.so.6.0.0 +shared/lib/libXdmcp.so.6.0.0 +shared/lib/libgpg-error.so.0.33.1 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 +shared/lib/libbsd.so.0.11.7 +shared/lib/libmd.so.0.0.5 +shared/lib/libvulkan.so.1.3.239 share/vulkan/icd.d/intel_hasvk_icd.x86_64.json 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-xfixes.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/lvp_icd.x86_64.json +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 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 +shared/lib/libdrm_amdgpu.so.1.0.0 +shared/lib/libelf-0.188.so +shared/lib/libVkLayer_MESA_device_select.so bin/qt.conf shared/lib/qt6/plugins/platforms/libqeglfs.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-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/libQt6WaylandClient.so.6.4.2 +shared/lib/libwayland-cursor.so.0.21.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/libgtk-3.so.0.2406.32 +shared/lib/libgdk-3.so.0.2406.32 +shared/lib/libatk-1.0.so.0.24609.1 +shared/lib/libepoxy.so.0.0.0 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/libatk-bridge-2.0.so.0.0.0 +shared/lib/libwayland-egl.so.1.21.0 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/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/libibusplatforminputcontextplugin.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/libqjpeg.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 diff --git a/.ci/linux/package.sh b/.ci/linux/package.sh index 4d58b8f328..bbf9c29fb1 100755 --- a/.ci/linux/package.sh +++ b/.ci/linux/package.sh @@ -3,6 +3,8 @@ # SPDX-FileCopyrightText: 2025 eden Emulator Project # 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 set -ex @@ -10,6 +12,8 @@ export APPIMAGE_EXTRACT_AND_RUN=1 export BASE_ARCH="$(uname -m)" export ARCH="$BASE_ARCH" +export BUILDDIR="$2" + LIB4BN="https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bin" URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-$ARCH" @@ -19,9 +23,14 @@ if [ "$ARCH" = 'x86_64' ]; then fi fi +if [ "$BUILDDIR" = '' ] +then + BUILDDIR=build +fi + EDEN_TAG=$(git describe --tags --abbrev=0) echo "Making stable \"$EDEN_TAG\" build" -git checkout "$EDEN_TAG" +# git checkout "$EDEN_TAG" VERSION="$(echo "$EDEN_TAG")" # NOW MAKE APPIMAGE @@ -42,10 +51,13 @@ cp ../dist/eden.svg ./eden.svg ln -sf ./eden.svg ./.DirIcon -if [ "$DEVEL" = 'true' ]; then - sed -i 's|Name=Eden|Name=Eden Nightly|' ./eden.desktop - UPINFO="$(echo "$UPINFO" | sed 's|latest|nightly|')" -fi +# TODO(crueter): Nightly +# if [ "$DEVEL" = 'true' ]; then +# sed -i 's|Name=Eden|Name=Eden Nightly|' ./eden.desktop +# UPINFO="$(echo "$UPINFO" | sed 's|latest|nightly|')" +# fi + +UPINFO='gh-releases-zsync|eden-emulator|Releases|latest|*.AppImage.zsync' LIBDIR="/usr/lib" # some distros are weird and use a subdir @@ -59,7 +71,7 @@ fi wget --retry-connrefused --tries=30 "$LIB4BN" -O ./lib4bin chmod +x ./lib4bin xvfb-run -a -- ./lib4bin -p -v -e -s -k \ - ../build/bin/eden* \ + ../$BUILDDIR/bin/eden* \ $LIBDIR/lib*GL*.so* \ $LIBDIR/libSDL2*.so* \ $LIBDIR/dri/* \ diff --git a/.ci/windows/build-bqt.bat b/.ci/windows/build-bqt.bat index 925d420690..11f8fc8ee2 100755 --- a/.ci/windows/build-bqt.bat +++ b/.ci/windows/build-bqt.bat @@ -1,27 +1,24 @@ -echo off +@echo off set chain=%1 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 ^ --DYUZU_USE_BUNDLED_QT=ON ^ -DENABLE_QT_TRANSLATION=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_SDL2=ON ^ +-DYUZU_ENABLE_LTO=ON ^ -G "Ninja" ^ --DYUZU_TESTS=OFF ^ --DCMAKE_C_COMPILER_LAUNCHER=ccache ^ --DCMAKE_CXX_COMPILER_LAUNCHER=ccache ^ --DCMAKE_TOOLCHAIN_FILE="%CD%\CMakeModules\MSVCCache.cmake" ^ --DUSE_CCACHE=ON +-DYUZU_TESTS=OFF -cmake --build build\%chain% - -ccache -s -v \ No newline at end of file +CALL cmake --build build\%chain% diff --git a/.ci/windows/build.bat b/.ci/windows/build.bat index 4dbe862a94..8535588fbc 100755 --- a/.ci/windows/build.bat +++ b/.ci/windows/build.bat @@ -1,4 +1,4 @@ -echo off +@echo off set chain=%1 set qt_ver=%2 @@ -11,21 +11,16 @@ CALL mkdir build CALL cmake -S . -B build\%chain% ^ -DCMAKE_BUILD_TYPE=Release ^ --DYUZU_USE_BUNDLED_QT=ON ^ -DENABLE_QT_TRANSLATION=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_SDL2=ON ^ +-DYUZU_ENABLE_LTO=ON ^ -G "Ninja" ^ -DYUZU_TESTS=OFF ^ --DUSE_BUNDLED_QT=OFF ^ --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 +-DQt6_DIR=C:\Qt\%qt_ver%\msvc2022_64 CALL cmake --build build\%chain% - -CALL ccache -s -v \ No newline at end of file diff --git a/.ci/windows/package.ps1 b/.ci/windows/package.ps1 index f7c5f09042..4cdc938933 100755 --- a/.ci/windows/package.ps1 +++ b/.ci/windows/package.ps1 @@ -12,31 +12,29 @@ $ARTIFACTS_DIR = "artifacts" New-Item -ItemType Directory -Path $ARTIFACTS_DIR -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") { mkdir -p pdb - $BUILD_PDB = "eden-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" - Get-ChildItem "build/$target/bin/" -Recurse -Filter "*.pdb" | Copy-Item -destination .\pdb -ErrorAction SilentlyContinue - + Get-ChildItem -Path "$RELEASE_DIST" -Filter "*.pdb" -Recurse | Move-Item -Destination .\pdb -ErrorAction SilentlyContinue -Force + if (Test-Path -Path ".\pdb\*.pdb") { + $BUILD_PDB = "eden-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" 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" } - -Copy-Item "build/$target/bin/Release/*" -Destination "$RELEASE_DIST" -Recurse -ErrorAction SilentlyContinue -if (-not $?) { - # Try without Release subfolder if that doesn't exist - Copy-Item "build/$target/bin/*" -Destination "$RELEASE_DIST" -Recurse -ErrorAction SilentlyContinue +if ($debug -ne "yes") { + Remove-Item "$RELEASE_DIST\*.pdb" -Recurse -ErrorAction SilentlyContinue -Force } +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" - 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 "README*" -Destination "$RELEASE_DIST" -ErrorAction SilentlyContinue diff --git a/CMakeLists.txt b/CMakeLists.txt index 95fc803e30..e094d99dee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -368,11 +368,6 @@ if (UNIX AND NOT APPLE) find_package(gamemode 1.7 MODULE) 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 if (ENABLE_SDL2) if (YUZU_USE_BUNDLED_SDL2) @@ -405,8 +400,14 @@ endif() add_subdirectory(externals) if (ENABLE_QT) - if (NOT USE_SYSTEM_QT) + if (YUZU_USE_BUNDLED_QT) 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() find_package(Qt6 REQUIRED COMPONENTS Widgets Multimedia Concurrent) @@ -433,6 +434,7 @@ if (ENABLE_QT) if (NOT DEFINED QT_HOST_PATH) set(QT_HOST_PATH "${QT_TARGET_PATH}") endif() + message(STATUS "Using target Qt at ${QT_TARGET_PATH}") message(STATUS "Using host Qt at ${QT_HOST_PATH}") endif() @@ -648,13 +650,15 @@ endif() # https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html # https://www.freedesktop.org/software/appstream/docs/ if(ENABLE_QT AND UNIX AND NOT APPLE) - install(FILES "dist/org.yuzu_emu.yuzu.desktop" + install(FILES "dist/eden.desktop" DESTINATION "share/applications") install(FILES "dist/eden.svg" DESTINATION "share/icons/hicolor/scalable/apps" - RENAME "org.yuzu_emu.eden.svg") - install(FILES "dist/org.yuzu_emu.yuzu.xml" + RENAME "eden.svg") + + # TODO: these files need to be updated. + install(FILES "dist/eden.xml" DESTINATION "share/mime/packages") - install(FILES "dist/org.yuzu_emu.yuzu.metainfo.xml" + install(FILES "dist/eden.metainfo.xml" DESTINATION "share/metainfo") endif() diff --git a/CMakeModules/DownloadExternals.cmake b/CMakeModules/DownloadExternals.cmake index f48c844f08..adc658d74f 100644 --- a/CMakeModules/DownloadExternals.cmake +++ b/CMakeModules/DownloadExternals.cmake @@ -72,7 +72,7 @@ function(determine_qt_parameters target host_out type_out arch_out arch_path_out elseif ("x86_64" IN_LIST ARCHITECTURE) set(arch_path "msvc2022_64") 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() set(arch "win64_${arch_path}") @@ -83,7 +83,7 @@ function(determine_qt_parameters target host_out type_out arch_out arch_path_out endif() set(host_arch "win64_${host_arch_path}") 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() elseif (APPLE) diff --git a/dist/org.yuzu_emu.yuzu.desktop b/dist/eden.desktop similarity index 94% rename from dist/org.yuzu_emu.yuzu.desktop rename to dist/eden.desktop index 4a102995ec..c23f95b136 100644 --- a/dist/org.yuzu_emu.yuzu.desktop +++ b/dist/eden.desktop @@ -7,7 +7,7 @@ Type=Application Name=eden GenericName=Switch Emulator Comment=Nintendo Switch video game console emulator -Icon=org.yuzu_emu.eden +Icon=eden TryExec=eden Exec=eden %f Categories=Game;Emulator;Qt; diff --git a/dist/org.yuzu_emu.yuzu.metainfo.xml b/dist/eden.metainfo.xml similarity index 100% rename from dist/org.yuzu_emu.yuzu.metainfo.xml rename to dist/eden.metainfo.xml diff --git a/dist/org.yuzu_emu.yuzu.xml b/dist/eden.xml similarity index 100% rename from dist/org.yuzu_emu.yuzu.xml rename to dist/eden.xml diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index d5ef48de96..12f2e13210 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -450,14 +450,14 @@ if(UNIX AND NOT APPLE) install(TARGETS yuzu) 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 "$") 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() -if (NOT USE_SYSTEM_QT) - include(CopyYuzuQt6Deps) - copy_yuzu_Qt6_deps(yuzu) +if (YUZU_USE_BUNDLED_QT) + include(CopyYuzuQt6Deps) + copy_yuzu_Qt6_deps(yuzu) endif() if (ENABLE_SDL2)