diff --git a/.ci/linux/build.sh b/.ci/linux/build.sh index 41e0ca308b..16eaef394b 100755 --- a/.ci/linux/build.sh +++ b/.ci/linux/build.sh @@ -67,8 +67,9 @@ else export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DYUZU_USE_PRECOMPILED_HEADERS=OFF) fi + if [ "$DEVEL" != "true" ]; then - export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DENABLE_QT_UPDATE_CHECKER=ON) + export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DENABLE_UPDATE_CHECKER=ON) fi if [ "$USE_WEBENGINE" = "true" ]; then diff --git a/.ci/windows/build.sh b/.ci/windows/build.sh index d554e00e1b..fd1883048c 100644 --- a/.ci/windows/build.sh +++ b/.ci/windows/build.sh @@ -36,8 +36,8 @@ cmake .. -G Ninja \ -DCMAKE_EXE_LINKER_FLAGS=" /LTCG" \ -DDYNARMIC_ENABLE_LTO=ON \ -DYUZU_USE_BUNDLED_QT=${BUNDLE_QT:-false} \ - -DUSE_CCACHE=${CCACHE:-false} \ - -DENABLE_QT_UPDATE_CHECKER=${DEVEL:-true} \ + -DUSE_CCACHE=${CCACHE:-false} \ + -DENABLE_UPDATE_CHECKER=${DEVEL:-true} \ "${EXTRA_CMAKE_FLAGS[@]}" \ "$@" diff --git a/.github/workflows/trigger_release.yml b/.github/workflows/trigger_release.yml index 645b21e25a..325e0a02b4 100644 --- a/.github/workflows/trigger_release.yml +++ b/.github/workflows/trigger_release.yml @@ -96,7 +96,7 @@ jobs: fetch-tags: true - name: Build - run: TARGET=appimage RELEASE=1 ./.ci/linux/build.sh v3 8 + run: TARGET=appimage RELEASE=1 DEVEL=false ./.ci/linux/build.sh v3 8 - name: Package AppImage run: ./.ci/linux/package.sh v3 &> /dev/null @@ -133,7 +133,7 @@ jobs: echo $GIT_TAG_NAME - name: Build - run: ANDROID_HOME=/home/runner/sdk ./.ci/android/build.sh + run: DEVEL=false ANDROID_HOME=/home/runner/sdk ./.ci/android/build.sh env: ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }} ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} diff --git a/CMakeLists.txt b/CMakeLists.txt index a41b8204d6..3eb3949d00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -175,7 +175,7 @@ endif() # qt stuff option(ENABLE_QT "Enable the Qt frontend" ON) option(ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF) -option(ENABLE_QT_UPDATE_CHECKER "Enable update checker for the Qt frontend" OFF) +option(ENABLE_UPDATE_CHECKER "Enable update checker (for Qt and Android)" OFF) cmake_dependent_option(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF) option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF) option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF) @@ -596,7 +596,7 @@ if (ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER) # find_package(httplib CONFIG) endif() -if (ENABLE_WEB_SERVICE) +if (ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER) find_package(cpp-jwt) endif() diff --git a/docs/Deps.md b/docs/Deps.md index 3c266ad98a..4e085c8a55 100644 --- a/docs/Deps.md +++ b/docs/Deps.md @@ -62,7 +62,7 @@ Certain other dependencies will be fetched by CPM regardless. System packages *c * [libusb](https://github.com/libusb/libusb) * [VulkanMemoryAllocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator) * [sirit](https://github.com/eden-emulator/sirit) -* [httplib](https://github.com/yhirose/cpp-httplib) - if `ENABLE_QT_UPDATE_CHECKER` or `ENABLE_WEB_SERVICE` are on +* [httplib](https://github.com/yhirose/cpp-httplib) - if `ENABLE_UPDATE_CHECKER` or `ENABLE_WEB_SERVICE` are on - This package is known to be broken on the AUR. * [cpp-jwt](https://github.com/arun11299/cpp-jwt) 1.4+ - if `ENABLE_WEB_SERVICE` is on * [unordered-dense](https://github.com/martinus/unordered_dense) diff --git a/docs/Options.md b/docs/Options.md index 3dd84ea645..708da51837 100644 --- a/docs/Options.md +++ b/docs/Options.md @@ -38,6 +38,7 @@ Notes: - `YUZU_USE_BUNDLED_OPENSSL` (ON for MSVC) Download bundled OpenSSL build * Always on for Android * Unavailable on OpenBSD +- `ENABLE_UPDATE_CHECKER` (OFF) Enable update checker for the Qt an Android frontends The following options are desktop only: - `ENABLE_SDL2` (ON) Enable the SDL2 desktop, audio, and input frontend (HIGHLY RECOMMENDED!) @@ -51,7 +52,6 @@ The following options are desktop only: * Unavailable on Windows/ARM64 and Android - `ENABLE_QT` (ON) Enable the Qt frontend (recommended) - `ENABLE_QT_TRANSLATION` (OFF) Enable translations for the Qt frontend -- `ENABLE_QT_UPDATE_CHECKER` (OFF) Enable update checker for the Qt frontend - `YUZU_USE_BUNDLED_QT` (ON for MSVC) Download bundled Qt binaries * Note that using **system Qt** requires you to include the Qt CMake directory in `CMAKE_PREFIX_PATH`, e.g: * `-DCMAKE_PREFIX_PATH=C:/Qt/6.9.0/msvc2022_64/lib/cmake/Qt6` diff --git a/docs/scripts/Linux.md b/docs/scripts/Linux.md index 8b18e41ced..93e76c222e 100644 --- a/docs/scripts/Linux.md +++ b/docs/scripts/Linux.md @@ -27,5 +27,5 @@ Boolean flags (set `true` to enable, `false` to disable): * AppImage packaging script: `.ci/linux/package.sh` * Accepts same arch targets as build script - * Use `DEVEL=true` to rename app to `Eden Nightly` + * Use `DEVEL=true` to rename app to `Eden Nightly` and disable the update checker * This should generally not be used unless in a tailor-made packaging environment (e.g. Actions/CI) \ No newline at end of file diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 0379167e72..43778118d8 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -214,7 +214,7 @@ if (VulkanMemoryAllocator_ADDED) endif() # httplib -if (ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER) +if (ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER) AddJsonPackage(httplib) endif() diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts index 87fbc9a870..b03ae732d4 100644 --- a/src/android/app/build.gradle.kts +++ b/src/android/app/build.gradle.kts @@ -74,22 +74,24 @@ android { externalNativeBuild { cmake { - val extraCMakeArgs = (project.findProperty("YUZU_ANDROID_ARGS") as String?)?.split("\\s+".toRegex()) ?: emptyList() - - arguments.addAll(listOf( - "-DENABLE_QT=0", // Don't use QT - "-DENABLE_SDL2=0", // Don't use SDL - "-DENABLE_WEB_SERVICE=1", // Enable web service - "-DENABLE_OPENSSL=ON", - "-DANDROID_ARM_NEON=true", // cryptopp requires Neon to work - "-DYUZU_USE_CPM=ON", - "-DCPMUTIL_FORCE_BUNDLED=ON", - "-DYUZU_USE_BUNDLED_FFMPEG=ON", - "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON", - "-DBUILD_TESTING=OFF", - "-DYUZU_TESTS=OFF", - "-DDYNARMIC_TESTS=OFF", - *extraCMakeArgs.toTypedArray() + val extraCMakeArgs = + (project.findProperty("YUZU_ANDROID_ARGS") as String?)?.split("\\s+".toRegex()) + ?: emptyList() + arguments.addAll( + listOf( + "-DENABLE_QT=0", // Don't use QT + "-DENABLE_SDL2=0", // Don't use SDL + "-DENABLE_WEB_SERVICE=1", // Enable web service + "-DENABLE_OPENSSL=ON", + "-DANDROID_ARM_NEON=true", // cryptopp requires Neon to work + "-DYUZU_USE_CPM=ON", + "-DCPMUTIL_FORCE_BUNDLED=ON", + "-DYUZU_USE_BUNDLED_FFMPEG=ON", + "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON", + "-DBUILD_TESTING=OFF", + "-DYUZU_TESTS=OFF", + "-DDYNARMIC_TESTS=OFF", + *extraCMakeArgs.toTypedArray() )) abiFilters("arm64-v8a") @@ -227,6 +229,7 @@ android { } } + tasks.register("ktlintReset", fun Delete.() { delete(File(layout.buildDirectory.toString() + File.separator + "intermediates/ktLint")) }) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt index c5cc95619e..2744b201df 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt @@ -200,6 +200,21 @@ object NativeLibrary { external fun logSettings() + /** + * Checks for available updates. + */ + external fun checkForUpdate(): String? + + /** + * Return the URL to the release page + */ + external fun getUpdateUrl(version: String): String + + /** + * Returns whether the update checker is enabled through CMAKE options. + */ + external fun isUpdateCheckerEnabled(): Boolean + enum class CoreError { ErrorSystemFiles, ErrorSavestate, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt index daea2b0370..8fcc6a055c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt @@ -12,6 +12,10 @@ import android.app.NotificationManager import android.content.Context import org.yuzu.yuzu_emu.features.input.NativeInput import java.io.File +import java.io.FileOutputStream +import java.security.KeyStore +import javax.net.ssl.TrustManagerFactory +import javax.net.ssl.X509TrustManager import org.yuzu.yuzu_emu.utils.DirectoryInitialization import org.yuzu.yuzu_emu.utils.DocumentsTree import org.yuzu.yuzu_emu.utils.GpuDriverHelper diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt index e9fe2be53c..5c21ea7dc1 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt @@ -35,6 +35,8 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting { PICTURE_IN_PICTURE("picture_in_picture"), USE_CUSTOM_RTC("custom_rtc_enabled"), BLACK_BACKGROUNDS("black_backgrounds"), + + ENABLE_UPDATE_CHECKS("enable_update_checks"), JOYSTICK_REL_CENTER("joystick_rel_center"), DPAD_SLIDE("dpad_slide"), HAPTIC_FEEDBACK("haptic_feedback"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt index 99cee62142..27682e329b 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt @@ -24,7 +24,7 @@ object Settings { SECTION_INPUT_PLAYER_SIX, SECTION_INPUT_PLAYER_SEVEN, SECTION_INPUT_PLAYER_EIGHT, - SECTION_THEME(R.string.preferences_theme), + SECTION_APP_SETTINGS(R.string.preferences_app_settings), SECTION_DEBUG(R.string.preferences_debug), SECTION_EDEN_VEIL(R.string.eden_veil), SECTION_APPLETS(R.string.applets_menu); diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt index 8c35155e78..6dc5d66c7b 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt @@ -750,6 +750,12 @@ abstract class SettingsItem( valuesId = R.array.rendererApiValues ) ) + put( + SwitchSetting( + BooleanSetting.ENABLE_UPDATE_CHECKS, + titleId = R.string.enable_update_checks, + ) + ) put( SwitchSetting( BooleanSetting.RENDERER_DEBUG, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt index 6ce6046d54..8a0bea158e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -105,7 +105,7 @@ class SettingsFragmentPresenter( MenuTag.SECTION_INPUT_PLAYER_SIX -> addInputPlayer(sl, 5) MenuTag.SECTION_INPUT_PLAYER_SEVEN -> addInputPlayer(sl, 6) MenuTag.SECTION_INPUT_PLAYER_EIGHT -> addInputPlayer(sl, 7) - MenuTag.SECTION_THEME -> addThemeSettings(sl) + MenuTag.SECTION_APP_SETTINGS -> addThemeSettings(sl) MenuTag.SECTION_DEBUG -> addDebugSettings(sl) MenuTag.SECTION_EDEN_VEIL -> addEdenVeilSettings(sl) MenuTag.SECTION_APPLETS -> addAppletSettings(sl) @@ -1030,6 +1030,14 @@ class SettingsFragmentPresenter( override fun reset() = IntSetting.THEME.setInt(defaultValue) } + if (NativeLibrary.isUpdateCheckerEnabled()) { + add(HeaderSetting(R.string.app_settings)) + add(BooleanSetting.ENABLE_UPDATE_CHECKS.key) + } + + add(HeaderSetting(R.string.theme_and_color)) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { add( SingleChoiceSetting( diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt index 5763f3120f..1dbdd5e540 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt @@ -86,6 +86,20 @@ class HomeSettingsFragment : Fragment() { } ) ) + add( + HomeSetting( + R.string.app_settings, + R.string.app_settings_description, + R.drawable.ic_palette, + { + val action = HomeNavigationDirections.actionGlobalSettingsActivity( + null, + Settings.MenuTag.SECTION_APP_SETTINGS + ) + binding.root.findNavController().navigate(action) + } + ) + ) add( HomeSetting( R.string.preferences_controls, @@ -216,20 +230,6 @@ class HomeSettingsFragment : Fragment() { { openFileManager() } ) ) - add( - HomeSetting( - R.string.preferences_theme, - R.string.theme_and_color_description, - R.drawable.ic_palette, - { - val action = HomeNavigationDirections.actionGlobalSettingsActivity( - null, - Settings.MenuTag.SECTION_THEME - ) - binding.root.findNavController().navigate(action) - } - ) - ) add( HomeSetting( R.string.about, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt index 8e612fa746..126d85d715 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt @@ -23,6 +23,7 @@ import androidx.navigation.NavController import androidx.navigation.fragment.NavHostFragment import androidx.preference.PreferenceManager import com.google.android.material.color.MaterialColors +import com.google.android.material.dialog.MaterialAlertDialogBuilder import java.io.File import java.io.FilenameFilter import org.yuzu.yuzu_emu.NativeLibrary @@ -50,6 +51,8 @@ import java.util.zip.ZipInputStream import androidx.core.content.edit import org.yuzu.yuzu_emu.activities.EmulationActivity import kotlin.text.compareTo +import androidx.core.net.toUri +import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting class MainActivity : AppCompatActivity(), ThemeProvider { private lateinit var binding: ActivityMainBinding @@ -152,9 +155,47 @@ class MainActivity : AppCompatActivity(), ThemeProvider { // Dismiss previous notifications (should not happen unless a crash occurred) EmulationActivity.stopForegroundService(this) + val firstTimeSetup = PreferenceManager.getDefaultSharedPreferences(applicationContext) + .getBoolean(Settings.PREF_FIRST_APP_LAUNCH, true) + + if (!firstTimeSetup && NativeLibrary.isUpdateCheckerEnabled() && BooleanSetting.ENABLE_UPDATE_CHECKS.getBoolean()) { + checkForUpdates() + } setInsets() } + private fun checkForUpdates() { + Thread { + val latestVersion = NativeLibrary.checkForUpdate() + if (latestVersion != null) { + runOnUiThread { + showUpdateDialog(latestVersion) + } + } + }.start() + } + + private fun showUpdateDialog(version: String) { + MaterialAlertDialogBuilder(this) + .setTitle(R.string.update_available) + .setMessage(getString(R.string.update_available_description, version)) + .setPositiveButton(android.R.string.ok) { _, _ -> + val url = NativeLibrary.getUpdateUrl(version) + val intent = Intent(Intent.ACTION_VIEW, url.toUri()) + startActivity(intent) + } + .setNeutralButton(R.string.cancel) { dialog, _ -> + dialog.dismiss() + } + .setNegativeButton(R.string.dont_show_again) { dialog, _ -> + BooleanSetting.ENABLE_UPDATE_CHECKS.setBoolean(false) + NativeConfig.saveGlobalConfig() + dialog.dismiss() + } + .show() + } + + fun displayMultiplayerDialog() { val dialog = NetPlayDialog(this) dialog.show() diff --git a/src/android/app/src/main/jni/CMakeLists.txt b/src/android/app/src/main/jni/CMakeLists.txt index 0557236394..cb17de46da 100644 --- a/src/android/app/src/main/jni/CMakeLists.txt +++ b/src/android/app/src/main/jni/CMakeLists.txt @@ -30,4 +30,8 @@ if (ENABLE_OPENSSL OR ENABLE_WEB_SERVICE) target_link_libraries(yuzu-android PRIVATE OpenSSL::SSL cpp-jwt::cpp-jwt) endif() +if (ENABLE_UPDATE_CHECKER) + target_compile_definitions(yuzu-android PUBLIC ENABLE_UPDATE_CHECKER) +endif() + set(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} yuzu-android) diff --git a/src/android/app/src/main/jni/android_settings.h b/src/android/app/src/main/jni/android_settings.h index c9e59ce105..53fdab8b4a 100644 --- a/src/android/app/src/main/jni/android_settings.h +++ b/src/android/app/src/main/jni/android_settings.h @@ -62,6 +62,8 @@ namespace AndroidSettings { Settings::Setting theme_mode{linkage, -1, "theme_mode", Settings::Category::Android}; Settings::Setting black_backgrounds{linkage, false, "black_backgrounds", Settings::Category::Android}; + Settings::Setting enable_update_checks{linkage, true, "enable_update_checks", + Settings::Category::Android}; // Input/performance overlay settings std::vector overlay_control_data; diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index 7dc6882e7c..ee9e455718 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -61,6 +61,9 @@ #include "core/loader/loader.h" #include "frontend_common/config.h" #include "frontend_common/firmware_manager.h" +#ifdef ENABLE_UPDATE_CHECKER +#include "frontend_common/update_checker.h" +#endif #include "hid_core/frontend/emulated_controller.h" #include "hid_core/hid_core.h" #include "hid_core/hid_types.h" @@ -1107,4 +1110,48 @@ JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_updatePowerState( g_is_charging.store(isCharging, std::memory_order_relaxed); g_has_battery.store(hasBattery, std::memory_order_relaxed); } + +// return #ifdef ENABLE_UPDATE_CHECKER +JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_isUpdateCheckerEnabled( + JNIEnv* env, + jobject obj) { +#ifdef ENABLE_UPDATE_CHECKER + return JNI_TRUE; +#else + return JNI_FALSE; +#endif + } + +#ifdef ENABLE_UPDATE_CHECKER + +JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_checkForUpdate( + JNIEnv* env, + jobject obj) { + const bool is_prerelease = ((strstr(Common::g_build_version, "pre-alpha") != nullptr) || + (strstr(Common::g_build_version, "alpha") != nullptr) || + (strstr(Common::g_build_version, "beta") != nullptr) || + (strstr(Common::g_build_version, "rc") != nullptr)); + const std::optional latest_release_tag = + UpdateChecker::GetLatestRelease(is_prerelease); + + if (latest_release_tag && latest_release_tag.value() != Common::g_build_version) { + return env->NewStringUTF(latest_release_tag.value().c_str()); + } + return nullptr; +} + +JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_getUpdateUrl( + JNIEnv* env, + jobject obj, + jstring version) { + const char* version_str = env->GetStringUTFChars(version, nullptr); + const std::string url = fmt::format("{}/{}/releases/tag/{}", + std::string{Common::g_build_auto_update_website}, + std::string{Common::g_build_auto_update_repo}, + version_str); + env->ReleaseStringUTFChars(version, version_str); + return env->NewStringUTF(url.c_str()); +} +#endif + } // extern "C" diff --git a/src/android/app/src/main/res/values-ar/strings.xml b/src/android/app/src/main/res/values-ar/strings.xml index e81fb44c68..f803ba161f 100644 --- a/src/android/app/src/main/res/values-ar/strings.xml +++ b/src/android/app/src/main/res/values-ar/strings.xml @@ -305,7 +305,6 @@ أضيفت مؤخراً فتح مجلد عدن إدارة الملفات الداخلية لـ عدن - تعديل مظهر التطبيق لم يتم العثور على مدير الملفات لا يمكن فتح مجلد عدن الرجاء تحديد موقع مجلد المستخدم باستخدام اللوحة الجانبية لمدير الملفات يدويًا @@ -666,7 +665,6 @@ التحكم مدخلات وحدة تحكم الخريطة اللاعب %d - السمة واللون تصحيح الأخطاء CPU/GPU debugging, graphics API, fastmem diff --git a/src/android/app/src/main/res/values-ckb/strings.xml b/src/android/app/src/main/res/values-ckb/strings.xml index 8a740a71c5..18ad5637fb 100644 --- a/src/android/app/src/main/res/values-ckb/strings.xml +++ b/src/android/app/src/main/res/values-ckb/strings.xml @@ -271,7 +271,6 @@ بەم دواییە زیادکرا کردنەوەی فۆڵدەری یوزو بەڕێوەبردنی فایلە ناوخۆییەکانی یوزو - دەستکاری کردنی شێوازی ئەپەکە هیچ فایل بەڕێوەبەرێک نەدۆزرایەوە نەتوانرا ناونیشانی یوزو بکرێتەوە تکایە شوێنی فۆڵدەری بەکارهێنەر لەگەڵ پانێڵی لایەنی فایل بەڕێوەبارەکان بە دەست بدۆزەرەوە. @@ -532,7 +531,6 @@ سیستەم گرافیک دەنگ - ڕەنگ و ڕووکار چاککردنەوە ڕێڕەو وەشان diff --git a/src/android/app/src/main/res/values-cs/strings.xml b/src/android/app/src/main/res/values-cs/strings.xml index 0f2f0eb555..9cf90e098d 100644 --- a/src/android/app/src/main/res/values-cs/strings.xml +++ b/src/android/app/src/main/res/values-cs/strings.xml @@ -482,7 +482,6 @@ Grafika Zvuk Výstupní engine, hlasitost - Vzhled a barva Ladění Info diff --git a/src/android/app/src/main/res/values-de/strings.xml b/src/android/app/src/main/res/values-de/strings.xml index 00b83d82c3..a24d3a39fe 100644 --- a/src/android/app/src/main/res/values-de/strings.xml +++ b/src/android/app/src/main/res/values-de/strings.xml @@ -291,7 +291,6 @@ Kürzlich hinzugefügt Eden-Ordner öffnen Eden\'s interne Dateien verwalten - Das Aussehen der App ändern Kein Dateimanager gefunden Eden-Verzeichnis konnte nicht geöffnet werden Bitte suche den Benutzerordner manuell über die Seitenleiste des Dateimanagers. @@ -645,7 +644,6 @@ Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die Steuerung Belege die Kontrollertasten Spieler %d - Theme und Farbe Debug CPU/GPU-Debugging, Grafik-API, Fastmem diff --git a/src/android/app/src/main/res/values-es/strings.xml b/src/android/app/src/main/res/values-es/strings.xml index 66a1963478..4b6831bf6b 100644 --- a/src/android/app/src/main/res/values-es/strings.xml +++ b/src/android/app/src/main/res/values-es/strings.xml @@ -305,7 +305,6 @@ Añadido recientemente Abrir la carpeta de Eden Administrar los archivos internos de Eden - Modificar la apariencia de la aplicación Explorador de archivos no encontrado No se pudo abrir la carpeta Eden Por favor, busque la carpeta user con el panel lateral del explorador de archivos de forma manual. @@ -660,7 +659,6 @@ Controles Asignar entradas del mando Jugador %d - Tema y color Depuración CPU/GPU debug, API gráfica, fastMEM diff --git a/src/android/app/src/main/res/values-fa/strings.xml b/src/android/app/src/main/res/values-fa/strings.xml index d020090beb..92580c595d 100644 --- a/src/android/app/src/main/res/values-fa/strings.xml +++ b/src/android/app/src/main/res/values-fa/strings.xml @@ -335,7 +335,6 @@ به تازگی اضافه شده‌ها باز کردن پوشه Eden مدیریت فایل‌های داخلی Eden - تغییر ظاهر برنامه هیچ برنامه مدیریت فایلی پیدا نشد پوشه Eden باز نشد لطفاً پوشه کاربری را با استفاده از پنل کناری برنامه مدیریت فایل به صورت دستی پیدا کنید. @@ -619,7 +618,6 @@ سطح دقت، وضوح، حافظه پنهان سایه‌زن صدا موتور خروجی، میزان - رنگ و تم اشکال‌زدایی اشکال‌زدایی پردازنده/گرافیک، API گرافیک، fastmem diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml index 11f02d1768..9afd40c27b 100644 --- a/src/android/app/src/main/res/values-fr/strings.xml +++ b/src/android/app/src/main/res/values-fr/strings.xml @@ -305,7 +305,6 @@ Ajouté récemment Ouvrir le dossier de Eden Gérer les fichiers internes de Eden - Modifier l\'apparence de l\'application Aucun gestionnaire de fichiers trouvé Impossible d\'ouvrir le répertoire de Eden Veuillez localiser manuellement le dossier utilisateur avec le panneau latéral du gestionnaire de fichiers. @@ -660,7 +659,6 @@ Contrôles Mapper l\'entrée du contrôleur Joueur %d - Thème et couleur Débogage Débogage CPU/GPU, API graphique, fastmem diff --git a/src/android/app/src/main/res/values-he/strings.xml b/src/android/app/src/main/res/values-he/strings.xml index d903f930ad..9af896dbb9 100644 --- a/src/android/app/src/main/res/values-he/strings.xml +++ b/src/android/app/src/main/res/values-he/strings.xml @@ -275,7 +275,6 @@ הוסף לאחרונה פתח את תיקיית Eden נה ל את הקבצים הפנימיין של Eden - ערוך את נראות האפליקציה לא נמצא מנהל קבצים לא יכול לפתוח את ספריית Eden בבקשה מקם את תיקיית המשתמש בפנל הצידי של מנהל הקבצים באופן ידני. @@ -556,7 +555,6 @@ רמת דיוק, רזולוציה, מטמון שיידרים שמע מנוע פלט, עוצמת שמע - צבע ונושא דיבאג דיבאגינג עבור מעבד/מעבד גרפי, ממשק תוכנה עבור הגרפיקות, fastmem diff --git a/src/android/app/src/main/res/values-hu/strings.xml b/src/android/app/src/main/res/values-hu/strings.xml index 5a3fbe737d..5579482d5b 100644 --- a/src/android/app/src/main/res/values-hu/strings.xml +++ b/src/android/app/src/main/res/values-hu/strings.xml @@ -274,7 +274,6 @@ Nemrég hozzáadva Eden mappa megnyitása Eden belső fájljainak kezelése - Az alkalmazás megjelenésének módosítása Nem található fájlkezelő Nem sikerült megnyitni a Eden könyvtárat Kérjük, manuálisan keresd meg a felhasználói mappát a fájlkezelő oldalsó paneljével. @@ -612,7 +611,6 @@ Kimeneti motor, hangerő Irányítás Játékos %d - Téma és színek Hibakeresés CPU/GPU hibakeresés, grafikus API, fastmem diff --git a/src/android/app/src/main/res/values-id/strings.xml b/src/android/app/src/main/res/values-id/strings.xml index b02d62ed45..b9033b2cf1 100644 --- a/src/android/app/src/main/res/values-id/strings.xml +++ b/src/android/app/src/main/res/values-id/strings.xml @@ -305,7 +305,6 @@ baru ditambahkan Buka folder Eden Kelola file internal Eden\'s - Ubah tampilan aplikasi Tidak menemukan file manager Tidak bisa membuka direktori Eden Silakan cari folder pengguna dengan panel samping manajer file secara manual. @@ -656,7 +655,6 @@ Kendali Petakan input kontroler Player %d - Tema dan warna Awakutu CPU/GPU debugging, graphics API, fastmem diff --git a/src/android/app/src/main/res/values-it/strings.xml b/src/android/app/src/main/res/values-it/strings.xml index 4f5b03a9e6..32a22ab487 100644 --- a/src/android/app/src/main/res/values-it/strings.xml +++ b/src/android/app/src/main/res/values-it/strings.xml @@ -301,7 +301,6 @@ Aggiunti recentemente Apri la cartella di Eden Gestisci i file interni di Eden - Modifica l\'aspetto dell\'app Nessun file manager trovato Impossibile aprire la cartella di Eden Per favore individua la cartella dell\'utente manualmente con il pannello laterale del file manager. @@ -601,7 +600,6 @@ Audio Motore di Output audio e volume Comandi - Tema e colori Debug Debugging CPU/GPU, API grafiche, fastmem diff --git a/src/android/app/src/main/res/values-ja/strings.xml b/src/android/app/src/main/res/values-ja/strings.xml index 2d3c50f610..e9e0b30adb 100644 --- a/src/android/app/src/main/res/values-ja/strings.xml +++ b/src/android/app/src/main/res/values-ja/strings.xml @@ -277,7 +277,6 @@ 最近追加された Eden フォルダを開く Eden内部のファイルを管理します - アプリの見た目を変更 ファイルマネージャーが見つかりませんでした Edenのディレクトリを開けません ファイルマネージャのサイドパネルでユーザーフォルダを手動で探してください。 @@ -556,7 +555,6 @@ グラフィック サウンド 操作 - テーマと色 デバッグ 情報 diff --git a/src/android/app/src/main/res/values-ko/strings.xml b/src/android/app/src/main/res/values-ko/strings.xml index 4f45893b3b..d30f573cc9 100644 --- a/src/android/app/src/main/res/values-ko/strings.xml +++ b/src/android/app/src/main/res/values-ko/strings.xml @@ -275,7 +275,6 @@ 최근 추가 Eden 폴더 열기 Eden의 내부 파일 관리 - 앱 디자인 편집 파일 관리자를 찾을 수 없음 Eden 디렉터리를 열 수 없음 파일 관리자의 사이드 패널에서 사용자 폴더를 수동으로 찾아주세요. @@ -570,7 +569,6 @@ 오디오 출력 엔진, 불륨 조작 - 테마 및 색상 디버그 CPU/GPU 디버깅, 그래픽 API, Fastmem diff --git a/src/android/app/src/main/res/values-nb/strings.xml b/src/android/app/src/main/res/values-nb/strings.xml index 87e97d0974..4673554239 100644 --- a/src/android/app/src/main/res/values-nb/strings.xml +++ b/src/android/app/src/main/res/values-nb/strings.xml @@ -271,7 +271,6 @@ Nylig lagt til Åpne Eden-mappen Administrere Edens interne filer - Endre appens utseende Ingen filbehandler funnet Kunne ikke åpne Eden-katalogen Finn brukermappen manuelt med filbehandlingens sidepanel. @@ -539,7 +538,6 @@ Grafikk Lyd Kontrollere - Tema og farge Feilsøk Info diff --git a/src/android/app/src/main/res/values-pl/strings.xml b/src/android/app/src/main/res/values-pl/strings.xml index 9ef8d9029f..b5c4cac9f6 100644 --- a/src/android/app/src/main/res/values-pl/strings.xml +++ b/src/android/app/src/main/res/values-pl/strings.xml @@ -305,7 +305,6 @@ Ostatnio dodane Otwórz folder Eden Zarządzaj plikami emulatora - Personalizuj wygląd aplikacji Nie znaleziono menedżera plików Nie można otworzyć folderu emulatora Proszę wybrać ręcznie folder z pomocą panelu bocznego menedżera plików. @@ -662,7 +661,6 @@ Sterowanie Mapuj wejście kontrolera Gracz %d - Motyw i kolor Debug Debugowanie CPU/GPU, API grafiki, fastmem diff --git a/src/android/app/src/main/res/values-pt-rBR/strings.xml b/src/android/app/src/main/res/values-pt-rBR/strings.xml index 3a5a2a15ae..f0abb3204f 100644 --- a/src/android/app/src/main/res/values-pt-rBR/strings.xml +++ b/src/android/app/src/main/res/values-pt-rBR/strings.xml @@ -305,7 +305,6 @@ Adicionado recentemente Abrir a pasta do Eden Gerencie os arquivos internos do Eden - Alterar a aparência do aplicativo Nenhum gerenciador de arquivos encontrado Não foi possível abrir a pasta do Eden Localize manualmente a pasta do usuário usando o gerenciador de arquivos. @@ -661,7 +660,6 @@ uma tentativa de mapeamento automático Controles Mapear entradas do controle Jogador %d - Tema e cor Depuração Depuração de CPU/GPU, API gráfica, fastmem diff --git a/src/android/app/src/main/res/values-pt-rPT/strings.xml b/src/android/app/src/main/res/values-pt-rPT/strings.xml index a058fe8ce4..ee6cb2bdcb 100644 --- a/src/android/app/src/main/res/values-pt-rPT/strings.xml +++ b/src/android/app/src/main/res/values-pt-rPT/strings.xml @@ -275,7 +275,6 @@ Adicionado recentemente Abre a pasta Eden Gere os ficheiro internos do Eden - Modifica a aparência da App Nenhum gestor de ficheiros encontrado Impossível abrir pasta Eden Localiza a pasta de utilizador manualmente com o painel lateral do gestor de ficheiros. @@ -623,7 +622,6 @@ uma tentativa de mapeamento automático Controlos Mapear entradas do controle Jogador %d - Cor e tema. Depurar Depuração de CPU/GPU, API gráfica, fastmem diff --git a/src/android/app/src/main/res/values-ru/strings.xml b/src/android/app/src/main/res/values-ru/strings.xml index b9967dbb9e..10f4ad22fb 100644 --- a/src/android/app/src/main/res/values-ru/strings.xml +++ b/src/android/app/src/main/res/values-ru/strings.xml @@ -305,7 +305,6 @@ Недавно добавлено Открыть папку Eden Управление внутренними файлами Eden - Изменение внешнего вида приложения Не найден файловый менеджер Не удалось открыть папку Eden Пожалуйста, найдите папку пользователя с помощью боковой панели файлового менеджера вручную. @@ -662,7 +661,6 @@ Управление Маппинг контроллера Игрок %d - Тема и цвет Отладка Отладка ЦП/ГП, графический API, fastmem diff --git a/src/android/app/src/main/res/values-sr/strings.xml b/src/android/app/src/main/res/values-sr/strings.xml index 5eddd17806..ed20f55030 100644 --- a/src/android/app/src/main/res/values-sr/strings.xml +++ b/src/android/app/src/main/res/values-sr/strings.xml @@ -274,7 +274,6 @@ Недавно је додато Отворите директоријум ЕДЕН Управљајте унутрашњим датотекама ЕДЕН-а - Измените изглед апликације Није пронађен ниједан управник датотека Није могуће отворити директоријум ЕДЕН-а Молимо пронађите корисничку мапу са бочним панелом датотека менаџера и ручно. @@ -621,7 +620,6 @@ Контрола Унос контролера мапе Играч%d - Тема и боја Ослободити збрајања ЦПУ / ГПУ уклањање погрешака, графички АПИ, ФастМем diff --git a/src/android/app/src/main/res/values-uk/strings.xml b/src/android/app/src/main/res/values-uk/strings.xml index 85c55bc033..9c42fa0409 100644 --- a/src/android/app/src/main/res/values-uk/strings.xml +++ b/src/android/app/src/main/res/values-uk/strings.xml @@ -305,7 +305,6 @@ Нещодавно додано Відкрити теку Eden Керування внутрішніми файлами Eden - Змінити зовнішній вигляд застосунку Не знайдено файлового менеджера Не вдалося відкрити теку Eden Будь ласка, знайдіть теку користувача за допомогою бічної панелі файлового менеджера вручну. @@ -662,7 +661,6 @@ Керування Призначити кнопки контролера Гравець %d - Тема та колір Налагодження Налагодження CPU/GPU, графічний API, швидка пам\'ять diff --git a/src/android/app/src/main/res/values-vi/strings.xml b/src/android/app/src/main/res/values-vi/strings.xml index adbe12ccb9..e25feeb9cb 100644 --- a/src/android/app/src/main/res/values-vi/strings.xml +++ b/src/android/app/src/main/res/values-vi/strings.xml @@ -271,7 +271,6 @@ Đã thêm gần đây Mở thư mục Eden Quản lý file nội bộ của Eden - Thay đổi giao diện ứng dụng Không tìm thấy trình quản lý tệp Không thể mở thư mục Eden Vui lòng xác định thư mục người dùng với bảng điều khiển bên của trình quản lý tệp thủ công. @@ -539,7 +538,6 @@ Đồ Họa Âm Thanh Phím - Chủ đề và màu sắc Vá lỗi Thông Tin diff --git a/src/android/app/src/main/res/values-zh-rCN/strings.xml b/src/android/app/src/main/res/values-zh-rCN/strings.xml index a514f90e4d..f8325c5c5b 100644 --- a/src/android/app/src/main/res/values-zh-rCN/strings.xml +++ b/src/android/app/src/main/res/values-zh-rCN/strings.xml @@ -279,7 +279,6 @@ 最近添加 打开 Eden 文件夹 管理 Eden 内部文件 - 更改外观 找不到可用的文件管理器 无法打开 Eden 文件夹 请使用文件管理器侧边栏中的内部存储手动定位用户文件夹。 @@ -624,7 +623,6 @@ 控制 使用控制器来映射输入 玩家 %d - 主题和色彩 调试 CPU/GPU 调试、图形 API 及 fastmem 内存访问 diff --git a/src/android/app/src/main/res/values-zh-rTW/strings.xml b/src/android/app/src/main/res/values-zh-rTW/strings.xml index b8a39c157d..6857603648 100644 --- a/src/android/app/src/main/res/values-zh-rTW/strings.xml +++ b/src/android/app/src/main/res/values-zh-rTW/strings.xml @@ -300,7 +300,6 @@ 最近新增 開啟 Eden 資料夾 管理 Eden 的內部檔案 - 修改應用程式外觀 找不到檔案管理員 無法開啟 Eden 目錄 請使用檔案管理員的側邊面板手動定位到使用者資料夾。 @@ -651,7 +650,6 @@ 控制 控制器輸入配對 玩家 %d - 主題和色彩 偵錯 CPU/GPU 偵錯、圖形 API 及 fastmem diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 8fbce9a0f0..b5346f8813 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -268,6 +268,9 @@ Folder Don\'t Show Again New game directory added successfully + "Check for updates on app startup. " + Update Available + A new version is available: %1$s\n\nWould you like to download it? Search Settings No files were found or no game directory has been selected yet. @@ -310,7 +313,7 @@ Recently added Open Eden folder Manage Eden\'s internal files - Modify the look of the app + Modify the behavior and look of the app No file manager found Could not open Eden directory Please locate the user folder with the file manager\'s side panel manually. @@ -670,7 +673,7 @@ Controls Map controller input Player %d - Theme and color + App vSettings Debug CPU/GPU debugging, graphics API, fastmem @@ -991,10 +994,12 @@ Building shaders - + Change app theme Default Material You + App Settings + Theme And Color Change theme mode diff --git a/src/frontend_common/CMakeLists.txt b/src/frontend_common/CMakeLists.txt index c9ce6f7ad4..1d15443008 100644 --- a/src/frontend_common/CMakeLists.txt +++ b/src/frontend_common/CMakeLists.txt @@ -15,5 +15,20 @@ add_library(frontend_common STATIC play_time_manager.h ) +if (ENABLE_UPDATE_CHECKER) + target_link_libraries(frontend_common PRIVATE httplib::httplib) + target_link_libraries(frontend_common PRIVATE nlohmann_json::nlohmann_json) + target_sources(frontend_common PRIVATE + update_checker.cpp + update_checker.h + ) + + if (ENABLE_OPENSSL) + target_compile_definitions(frontend_common PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT) + target_link_libraries(frontend_common PRIVATE OpenSSL::SSL) + endif() + +endif() + create_target_directory_groups(frontend_common) target_link_libraries(frontend_common PUBLIC core SimpleIni::SimpleIni PRIVATE common Boost::headers) diff --git a/src/yuzu/update_checker.cpp b/src/frontend_common/update_checker.cpp similarity index 89% rename from src/yuzu/update_checker.cpp rename to src/frontend_common/update_checker.cpp index af56068682..230f26dea2 100644 --- a/src/yuzu/update_checker.cpp +++ b/src/frontend_common/update_checker.cpp @@ -22,7 +22,6 @@ #include #include -#include #include std::optional UpdateChecker::GetResponse(std::string url, std::string path) @@ -74,13 +73,16 @@ std::optional UpdateChecker::GetResponse(std::string url, std::stri return response.body; } catch (std::exception &e) { - qDebug() << e.what(); + LOG_ERROR(Frontend, + "GET to {}{} failed during update check: {}", + url, + path, + e.what()); return std::nullopt; } } -std::optional UpdateChecker::GetLatestRelease(bool include_prereleases) -{ +std::optional UpdateChecker::GetLatestRelease(bool include_prereleases) { const auto update_check_url = std::string{Common::g_build_auto_update_api}; std::string update_check_path = fmt::format("/repos/{}", std::string{Common::g_build_auto_update_repo}); @@ -90,8 +92,8 @@ std::optional UpdateChecker::GetLatestRelease(bool include_prerelea const auto update_check_tags_path = update_check_path + "/tags"; const auto update_check_releases_path = update_check_path + "/releases"; - const auto tags_response = GetResponse(update_check_url, update_check_tags_path); - const auto releases_response = GetResponse(update_check_url, update_check_releases_path); + const auto tags_response = UpdateChecker::GetResponse(update_check_url, update_check_tags_path); + const auto releases_response = UpdateChecker::GetResponse(update_check_url, update_check_releases_path); if (!tags_response || !releases_response) return {}; @@ -110,7 +112,7 @@ std::optional UpdateChecker::GetLatestRelease(bool include_prerelea return latest_tag; } else { // This is a stable release, only check for other stable releases. update_check_path += "/releases/latest"; - const auto response = GetResponse(update_check_url, update_check_path); + const auto response = UpdateChecker::GetResponse(update_check_url, update_check_path); if (!response) return {}; diff --git a/src/yuzu/update_checker.h b/src/frontend_common/update_checker.h similarity index 64% rename from src/yuzu/update_checker.h rename to src/frontend_common/update_checker.h index cd2d15d834..957843bee0 100644 --- a/src/yuzu/update_checker.h +++ b/src/frontend_common/update_checker.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // Copyright Citra Emulator Project / Azahar Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. @@ -9,5 +12,5 @@ namespace UpdateChecker { std::optional GetResponse(std::string url, std::string path); -std::optional GetLatestRelease(bool); +std::optional GetLatestRelease(bool include_prereleases); } // namespace UpdateChecker diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index ee45b2a79a..e86f007cce 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -263,10 +263,8 @@ file(GLOB COMPAT_LIST file(GLOB_RECURSE ICONS ${PROJECT_SOURCE_DIR}/dist/icons/*) file(GLOB_RECURSE THEMES ${PROJECT_SOURCE_DIR}/dist/qt_themes/*) -if (ENABLE_QT_UPDATE_CHECKER) - target_link_libraries(yuzu PRIVATE httplib::httplib) - target_sources(yuzu PRIVATE update_checker.cpp) - target_compile_definitions(yuzu PUBLIC ENABLE_QT_UPDATE_CHECKER) +if (ENABLE_UPDATE_CHECKER) + target_compile_definitions(yuzu PUBLIC ENABLE_UPDATE_CHECKER) endif() if (ENABLE_QT_TRANSLATION) diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 1aee52da9c..8fb5575b41 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -54,8 +54,8 @@ #include "yuzu/multiplayer/state.h" #include "yuzu/util/controller_navigation.h" -#ifdef ENABLE_QT_UPDATE_CHECKER -#include "yuzu/update_checker.h" +#ifdef ENABLE_UPDATE_CHECKER +#include "frontend_common/update_checker.h" #endif #ifdef YUZU_ROOM @@ -517,7 +517,7 @@ GMainWindow::GMainWindow(bool has_broken_vulkan) show(); -#ifdef ENABLE_QT_UPDATE_CHECKER +#ifdef ENABLE_UPDATE_CHECKER if (UISettings::values.check_for_updates) { update_future = QtConcurrent::run([]() -> QString { const bool is_prerelease = ((strstr(Common::g_build_version, "pre-alpha") != NULL) || @@ -4220,7 +4220,7 @@ void GMainWindow::MigrateConfigFiles() { } } -#ifdef ENABLE_QT_UPDATE_CHECKER +#ifdef ENABLE_UPDATE_CHECKER void GMainWindow::OnEmulatorUpdateAvailable() { QString version_string = update_future.result(); if (version_string.isEmpty()) diff --git a/src/yuzu/main.h b/src/yuzu/main.h index 1c2035fbab..ce04d6d152 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -32,7 +32,7 @@ #include #endif -#ifdef ENABLE_QT_UPDATE_CHECKER +#ifdef ENABLE_UPDATE_CHECKER #include #include #endif @@ -420,7 +420,7 @@ private slots: void OnEmulationStopped(); void OnEmulationStopTimeExpired(); -#ifdef ENABLE_QT_UPDATE_CHECKER +#ifdef ENABLE_UPDATE_CHECKER void OnEmulatorUpdateAvailable(); #endif @@ -476,7 +476,7 @@ private: std::unique_ptr play_time_manager; std::shared_ptr input_subsystem; -#ifdef ENABLE_QT_UPDATE_CHECKER +#ifdef ENABLE_UPDATE_CHECKER QFuture update_future; QFutureWatcher update_watcher; #endif