From 08f65cbd01cda0345e597c8398dc33ea2e2fa932 Mon Sep 17 00:00:00 2001 From: crueter Date: Thu, 28 May 2026 20:36:16 +0200 Subject: [PATCH] [frontend] Fix auto updater flavors on Windows (#4019) Matches the build ID and compiler now. Note that this could still use some work on the Windows side of things. Ideally, it would just replace the executables in place; however, I think using the setup files will be better. Most of my concerns w.r.t this issue is that users will want to install multiple in the same place; however, I think it's fair to just not support the older versions at all for now. If users really want to do that, they can use the portable versions and cry about it. Signed-off-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4019 Reviewed-by: CamilleLaVey Reviewed-by: MaranBr Reviewed-by: Lizzie --- src/CMakeLists.txt | 21 +++++++++++++++++++++ src/common/net/net.cpp | 22 +++++++++++++--------- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 58ae00e8d9..86aa23c627 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,20 +21,41 @@ if (YUZU_STATIC_BUILD) add_compile_definitions(QT_STATICPLUGIN) endif() +# Build identifiers if (NIGHTLY_BUILD) add_compile_definitions(NIGHTLY_BUILD) endif() +# Legacy (android only) if (YUZU_LEGACY) message(WARNING "Making legacy build. Performance may suffer.") add_compile_definitions(YUZU_LEGACY) endif() +# Genshin Spoof (android only) if (GENSHIN_SPOOF) message(WARNING "Making Genshin spoof build") add_compile_definitions(GENSHIN_SPOOF) endif() +# Build ID (mingw only right now) +# Pretty much just refers to the CI "target" for this build +if (NOT BUILD_ID) + if (ARCHITECTURE_x86_64) + set(BUILD_ID amd64) + elseif(ARCHITECTURE_arm64) + if (WIN32) + set(BUILD_ID arm64) + else() + set(BUILD_ID aarch64) + endif() + else() + set(BUILD_ID "${ARCHITECTURE}") + endif() +endif() + +add_compile_definitions(BUILD_ID="${BUILD_ID}") + # Set compilation flags if (MSVC AND NOT CXX_CLANG) set(CMAKE_CONFIGURATION_TYPES Debug Release CACHE STRING "" FORCE) diff --git a/src/common/net/net.cpp b/src/common/net/net.cpp index 1d836cbd1d..ec627177a2 100644 --- a/src/common/net/net.cpp +++ b/src/common/net/net.cpp @@ -62,16 +62,20 @@ std::vector Release::GetPlatformAssets() const { #ifdef _WIN32 #ifdef ARCHITECTURE_x86_64 - find_asset("Standard", {"amd64-msvc-standard.exe", "amd64-msvc-standard.zip", "mingw-amd64-gcc-standard.exe", "mingw-amd64-gcc-standard.zip"}); - find_asset("PGO", {"mingw-amd64-clang-pgo.exe", "mingw-amd64-clang-pgo.zip"}); +#ifdef _MSC_VER + find_asset("Standard", {"amd64-msvc-standard.exe", "amd64-msvc-standard.zip"}); +#else // _MSC_VER + find_asset("Standard", {BUILD_ID "-gcc-standard.exe", BUILD_ID "-gcc-standard.zip"}); + find_asset("PGO", {BUILD_ID "-clang-pgo.exe", BUILD_ID "-clang-pgo.zip"}); +#endif // _MSC_VER #elif defined(ARCHITECTURE_arm64) - find_asset("Standard", {"mingw-arm64-clang-standard.exe", "mingw-arm64-clang-standard.zip"}); - find_asset("PGO", {"mingw-arm64-clang-pgo.exe", "mingw-arm64-clang-pgo.zip"}); -#endif + find_asset("Standard", {"arm64-clang-standard.exe", "arm64-clang-standard.zip"}); + find_asset("PGO", {"arm64-clang-pgo.exe", "arm64-clang-pgo.zip"}); +#endif // ARCHITECTURE_arm64 #elif defined(__APPLE__) #ifdef ARCHITECTURE_arm64 find_asset("Standard", {".dmg", ".tar.gz"}); -#endif +#endif // ARCHITECTURE_arm64 #elif defined(__ANDROID__) #ifdef ARCHITECTURE_x86_64 find_asset("Standard", {"chromeos.apk"}); @@ -82,9 +86,9 @@ std::vector Release::GetPlatformAssets() const { find_asset("Standard", {"optimized.apk"}); #else find_asset("Standard", {"standard.apk"}); -#endif -#endif -#endif +#endif // GENSHIN_SPOOF +#endif // ARCHITECTURE_arm64 +#endif // __APPLE__ return found_assets; }