diff --git a/.ci/actool.sh b/.ci/actool.sh
deleted file mode 100755
index 5be658d2bb..0000000000
--- a/.ci/actool.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh -e
-
-# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-# SPDX-FileCopyrightText: Copyright 2026 crueter
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-_svg=dev.eden_emu.eden.svg
-_icon=dist/eden.icon
-_composed="$_icon/Assets/$_svg"
-_svg="dist/$_svg"
-
-rm "$_composed"
-cp "$_svg" "$_composed"
-
-xcrun actool "$_icon" \
- --compile dist \
- --platform macosx \
- --minimum-deployment-target 11.0 \
- --app-icon eden \
- --output-partial-info-plist /dev/null
diff --git a/.ci/ios/build.sh b/.ci/ios/build.sh
index 5537214cf9..f199b66582 100755
--- a/.ci/ios/build.sh
+++ b/.ci/ios/build.sh
@@ -6,9 +6,9 @@
WORK_DIR="$PWD"
xcrun --sdk iphoneos --show-sdk-path
-# TODO: support iphonesimulator sdk
+# TODO(crueter): FFmpeg for iOS
-cmake -G Xcode -B build/ios \
+cmake -G Xcode -B build \
-DCMAKE_TOOLCHAIN_FILE="$WORK_DIR/.ci/ios/ios-toolchain.cmake" \
-DPLATFORM=OS64 \
-DARCHS="arm64" \
@@ -19,7 +19,8 @@ cmake -G Xcode -B build/ios \
-DENABLE_QT=OFF \
-DENABLE_WEB_SERVICE=OFF \
-DENABLE_CUBEB=OFF \
- -DCMAKE_BUILD_TYPE=Release \
- "$@"
+ -DYUZU_USE_EXTERNAL_FFMPEG=ON \
+ -DYUZU_USE_EXTERNAL_SDL2=ON \
+ -DCMAKE_BUILD_TYPE=Release
-cmake --build build/ios -t eden-ios --config Release
+cmake --build build -t eden-ios
diff --git a/.ci/ios/ios-toolchain.cmake b/.ci/ios/ios-toolchain.cmake
index 5eed07b32f..b0defa25aa 100644
--- a/.ci/ios/ios-toolchain.cmake
+++ b/.ci/ios/ios-toolchain.cmake
@@ -157,7 +157,7 @@
# command.
#
-cmake_minimum_required(VERSION 3.10)
+cmake_minimum_required(VERSION 3.8.0)
# CMake invokes the toolchain file twice during the first build, but only once during subsequent rebuilds.
# NOTE: To improve single-library build-times, provide the flag "OS_SINGLE_BUILD" as a build argument.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 25da075e09..271ab34baf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -170,24 +170,24 @@ if (MSVC AND NOT CXX_CLANG)
set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} /W3 /WX-")
endif()
+# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
+cmake_dependent_option(YUZU_USE_EXTERNAL_SDL2 "Build SDL2 from external source" OFF "NOT MSVC;NOT ANDROID" OFF)
+cmake_dependent_option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}" "NOT ANDROID" OFF)
+
+option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
+
set(EXT_DEFAULT OFF)
if (MSVC OR ANDROID OR IOS)
set(EXT_DEFAULT ON)
endif()
-# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
-cmake_dependent_option(YUZU_USE_EXTERNAL_SDL2 "Build SDL2 from external source" OFF "NOT MSVC;NOT ANDROID" OFF)
-cmake_dependent_option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${EXT_DEFAULT}" "NOT ANDROID" OFF)
-
-option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
-
# ffmpeg
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT})
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF)
# sirit
set(BUNDLED_SIRIT_DEFAULT OFF)
-if ((MSVC AND NOT (CMAKE_BUILD_TYPE MATCHES "Deb")) OR ANDROID OR IOS)
+if ((MSVC AND NOT (CMAKE_BUILD_TYPE MATCHES "Deb")) OR ANDROID)
set(BUNDLED_SIRIT_DEFAULT ON)
endif()
@@ -488,17 +488,15 @@ endfunction()
# Put these BEFORE EXTERNALS or Boost WILL die
# =============================================
if (APPLE)
- set(_libs Metal IOKit CoreVideo CoreMedia)
+ find_library(IOKIT_LIBRARY IOKit REQUIRED)
if (IOS)
- list(APPEND _libs objc)
+ find_library(OBJC_LIBRARY objc REQUIRED)
+ set(PLATFORM_LIBRARIES ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY} ${OBJC_LIBRARY})
else()
- list(APPEND _libs Carbon Cocoa)
+ # Umbrella framework for everything GUI-related
+ find_library(COCOA_LIBRARY Cocoa REQUIRED)
+ set(PLATFORM_LIBRARIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY})
endif()
-
- foreach(fw ${_libs})
- find_library(${fw}_LIBRARY ${fw} REQUIRED)
- list(APPEND PLATFORM_LIBRARIES ${${fw}_LIBRARY})
- endforeach()
elseif (WIN32)
# Target Windows 10
add_compile_definitions(_WIN32_WINNT=0x0A00 WINVER=0x0A00)
diff --git a/dist/Assets.car b/dist/Assets.car
index 9ae9bca8a4..eb54881fac 100644
Binary files a/dist/Assets.car and b/dist/Assets.car differ
diff --git a/dist/eden.icns b/dist/eden.icns
index 82529ba224..680800951d 100644
Binary files a/dist/eden.icns and b/dist/eden.icns differ
diff --git a/dist/eden.icon/Assets/dev.eden_emu.eden.svg b/dist/eden.icon/Assets/dev.eden_emu.eden.svg
deleted file mode 100644
index f88b52f625..0000000000
--- a/dist/eden.icon/Assets/dev.eden_emu.eden.svg
+++ /dev/null
@@ -1,230 +0,0 @@
-
-
diff --git a/dist/eden.icon/icon.json b/dist/eden.icon/icon.json
deleted file mode 100644
index 1f1e7da516..0000000000
--- a/dist/eden.icon/icon.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "fill" : {
- "automatic-gradient" : "srgb:0.00000,0.00000,0.00000,1.00000"
- },
- "groups" : [
- {
- "layers" : [
- {
- "fill" : "none",
- "image-name" : "dev.eden_emu.eden.svg",
- "name" : "dev.eden_emu.eden",
- "position" : {
- "scale" : 1.8,
- "translation-in-points" : [
- 0,
- 0
- ]
- }
- }
- ],
- "shadow" : {
- "kind" : "neutral",
- "opacity" : 0.5
- },
- "translucency" : {
- "enabled" : true,
- "value" : 0.5
- }
- }
- ],
- "supported-platforms" : {
- "circles" : [
- "watchOS"
- ],
- "squares" : "shared"
- }
-}
\ No newline at end of file
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 7f80bb5d43..1ab537f44d 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -231,10 +231,6 @@ if (VulkanMemoryAllocator_ADDED)
endif()
# httplib
-if (IOS)
- set(HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF)
-endif()
-
AddJsonPackage(httplib)
# cpp-jwt
diff --git a/externals/cmake-modules/DetectArchitecture.cmake b/externals/cmake-modules/DetectArchitecture.cmake
index c4fd9e1ec3..a2f78b86de 100644
--- a/externals/cmake-modules/DetectArchitecture.cmake
+++ b/externals/cmake-modules/DetectArchitecture.cmake
@@ -41,12 +41,12 @@ if (CMAKE_OSX_ARCHITECTURES)
if (IOS)
# TODO: Right... the toolchain file won't properly accomodate OSX_ARCHITECTURE
# they aren't defining it as a list properly I assume?
- set(ARCHITECTURE_arm64 1)
+ set(ARCHITECTURE_arm64 1 PARENT_SCOPE)
add_definitions(-DARCHITECTURE_arm64=1)
else ()
# hope and pray the architecture names match
- foreach(ARCH ${CMAKE_OSX_ARCHITECTURES})
- set(ARCHITECTURE_${ARCH} 1)
+ foreach(ARCH IN ${CMAKE_OSX_ARCHITECTURES})
+ set(ARCHITECTURE_${ARCH} 1 PARENT_SCOPE)
add_definitions(-DARCHITECTURE_${ARCH}=1)
endforeach()
endif()
@@ -223,4 +223,4 @@ if (NOT DEFINED ARCHITECTURE)
add_definitions(-DARCHITECTURE_GENERIC=1)
endif()
-message(STATUS "[DetectArchitecture] Target architecture: ${ARCHITECTURE}")
+message(STATUS "[DetectArchitecture] Target architecture: ${ARCHITECTURE}")
\ No newline at end of file
diff --git a/externals/cpmfile.json b/externals/cpmfile.json
index 99aee2a396..b98c726132 100644
--- a/externals/cpmfile.json
+++ b/externals/cpmfile.json
@@ -23,7 +23,10 @@
"package": "sirit",
"name": "sirit",
"repo": "eden-emulator/sirit",
- "version": "1.0.5"
+ "version": "1.0.4",
+ "disabled_platforms": [
+ "ios-aarch64"
+ ]
},
"httplib": {
"repo": "yhirose/cpp-httplib",
@@ -36,8 +39,7 @@
"0002-fix-zstd.patch"
],
"options": [
- "HTTPLIB_REQUIRE_OPENSSL ON",
- "HTTPLIB_DISABLE_MACOSX_AUTOMATIC_ROOT_CERTIFICATES ON"
+ "HTTPLIB_REQUIRE_OPENSSL ON"
]
},
"cpp-jwt": {
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index 00a25a5744..1ee4794272 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -144,8 +144,7 @@ add_library(
zstd_compression.cpp
zstd_compression.h
fs/ryujinx_compat.h fs/ryujinx_compat.cpp
- fs/symlink.h fs/symlink.cpp
- httplib.h)
+ fs/symlink.h fs/symlink.cpp)
if(WIN32)
target_sources(common PRIVATE windows/timer_resolution.cpp
@@ -243,7 +242,7 @@ else()
target_link_libraries(common PUBLIC Boost::headers)
endif()
-target_link_libraries(common PUBLIC Boost::filesystem Boost::context httplib::httplib)
+target_link_libraries(common PUBLIC Boost::filesystem Boost::context)
if (lz4_ADDED)
target_include_directories(common PRIVATE ${lz4_SOURCE_DIR}/lib)
diff --git a/src/common/httplib.h b/src/common/httplib.h
deleted file mode 100644
index 2f971bd5f3..0000000000
--- a/src/common/httplib.h
+++ /dev/null
@@ -1,9 +0,0 @@
-// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#define CPPHTTPLIB_DISABLE_MACOSX_AUTOMATIC_ROOT_CERTIFICATES
-#define CPPHTTPLIB_OPENSSL_SUPPORT
-
-#include
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index aad42b883b..a2f595540d 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -1273,6 +1273,9 @@ endif()
target_sources(core PRIVATE hle/service/ssl/ssl_backend_openssl.cpp)
target_link_libraries(core PRIVATE OpenSSL::SSL OpenSSL::Crypto)
+if (NOT IOS)
+ target_compile_definitions(core PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
+endif()
# TODO
diff --git a/src/core/hle/service/bcat/news/builtin_news.cpp b/src/core/hle/service/bcat/news/builtin_news.cpp
index ad7aafa4e3..f7cc6c5a23 100644
--- a/src/core/hle/service/bcat/news/builtin_news.cpp
+++ b/src/core/hle/service/bcat/news/builtin_news.cpp
@@ -15,7 +15,9 @@
#include
#include
-#include "common/httplib.h"
+#ifdef CPPHTTPLIB_OPENSSL_SUPPORT
+#include
+#endif
#include
#include
@@ -102,6 +104,7 @@ std::vector TryLoadFromDisk(const std::filesystem::path& path) {
std::vector DownloadImage(const std::string& url_path, const std::filesystem::path& cache_path) {
LOG_INFO(Service_BCAT, "Downloading image: https://eden-emu.dev{}", url_path);
+#ifdef CPPHTTPLIB_OPENSSL_SUPPORT
try {
httplib::Client cli("https://eden-emu.dev");
cli.set_follow_location(true);
@@ -125,6 +128,7 @@ std::vector DownloadImage(const std::string& url_path, const std::filesystem
} catch (...) {
LOG_WARNING(Service_BCAT, "Failed to download: {}", url_path);
}
+#endif
return {};
}
@@ -229,6 +233,7 @@ void WriteCachedJson(std::string_view json) {
std::optional DownloadReleasesJson() {
+#ifdef CPPHTTPLIB_OPENSSL_SUPPORT
try {
httplib::SSLClient cli{"api.github.com", 443};
cli.set_connection_timeout(10);
@@ -250,7 +255,7 @@ std::optional DownloadReleasesJson() {
} catch (...) {
LOG_WARNING(Service_BCAT, " failed to download releases");
}
-
+#endif
return std::nullopt;
}
diff --git a/src/frontend_common/CMakeLists.txt b/src/frontend_common/CMakeLists.txt
index f9b3805939..b1554d7dba 100644
--- a/src/frontend_common/CMakeLists.txt
+++ b/src/frontend_common/CMakeLists.txt
@@ -23,6 +23,9 @@ if (ENABLE_UPDATE_CHECKER)
update_checker.cpp
update_checker.h)
target_link_libraries(frontend_common PRIVATE OpenSSL::SSL OpenSSL::Crypto)
+ if (NOT IOS)
+ target_compile_definitions(frontend_common PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT)
+ endif()
endif()
create_target_directory_groups(frontend_common)
diff --git a/src/frontend_common/update_checker.cpp b/src/frontend_common/update_checker.cpp
index 3e5a832ba0..75b1dc00cc 100644
--- a/src/frontend_common/update_checker.cpp
+++ b/src/frontend_common/update_checker.cpp
@@ -13,7 +13,7 @@
#include "common/scm_rev.h"
#include "update_checker.h"
-#include "common/httplib.h"
+#include
#ifdef YUZU_BUNDLED_OPENSSL
#include
diff --git a/src/ios/CMakeLists.txt b/src/ios/CMakeLists.txt
index 6e6c13db2d..54ff956a36 100644
--- a/src/ios/CMakeLists.txt
+++ b/src/ios/CMakeLists.txt
@@ -15,7 +15,6 @@ add_executable(eden-ios
EmulationSession.mm
EmulationWindow.h
EmulationWindow.mm
- VMA.cpp
)
# Keep bundle identifier as-is, for compatibility sake
set_target_properties(eden-ios PROPERTIES
@@ -27,5 +26,5 @@ set_target_properties(eden-ios PROPERTIES
)
target_link_libraries(eden-ios PRIVATE common core input_common frontend_common video_core sirit::sirit)
target_link_libraries(eden-ios PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
-target_link_libraries(eden-ios PRIVATE SDL2::SDL2 glad stb::headers)
+target_link_libraries(eden-ios PRIVATE SDL2::SDL2 glad)
create_target_directory_groups(eden-ios)
diff --git a/src/ios/VMA.cpp b/src/ios/VMA.cpp
deleted file mode 100644
index 7e2ea49c28..0000000000
--- a/src/ios/VMA.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#define VMA_IMPLEMENTATION
-#include "video_core/vulkan_common/vma.h"
diff --git a/src/qt_common/CMakeLists.txt b/src/qt_common/CMakeLists.txt
index 399fbe67a0..f7614c506a 100644
--- a/src/qt_common/CMakeLists.txt
+++ b/src/qt_common/CMakeLists.txt
@@ -50,6 +50,9 @@ if (USE_DISCORD_PRESENCE)
if (YUZU_USE_BUNDLED_OPENSSL)
target_link_libraries(qt_common PUBLIC OpenSSL::SSL OpenSSL::Crypto)
+ if (NOT IOS)
+ target_compile_definitions(qt_common PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
+ endif()
endif()
target_compile_definitions(qt_common PUBLIC USE_DISCORD_PRESENCE)
diff --git a/src/qt_common/discord/discord_impl.cpp b/src/qt_common/discord/discord_impl.cpp
index c1cb5319dc..37b24cdd57 100644
--- a/src/qt_common/discord/discord_impl.cpp
+++ b/src/qt_common/discord/discord_impl.cpp
@@ -9,7 +9,7 @@
#include
#include
-#include "common/httplib.h"
+#include
#include
#include
diff --git a/src/video_core/vulkan_common/vma.h b/src/video_core/vulkan_common/vma.h
index 514ff4501c..e022b2bf7d 100644
--- a/src/video_core/vulkan_common/vma.h
+++ b/src/video_core/vulkan_common/vma.h
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -13,14 +13,9 @@
#ifdef _MSC_VER
#pragma warning( push )
#pragma warning( disable : 4189 )
-#elif defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-variable"
#endif
#include "vk_mem_alloc.h"
#ifdef _MSC_VER
#pragma warning( pop )
-#elif defined(__clang__)
-#pragma clang diagnostic pop
#endif
diff --git a/src/web_service/CMakeLists.txt b/src/web_service/CMakeLists.txt
index a3acdfcf0f..0b749bb216 100644
--- a/src/web_service/CMakeLists.txt
+++ b/src/web_service/CMakeLists.txt
@@ -20,6 +20,27 @@ create_target_directory_groups(web_service)
target_include_directories(web_service PUBLIC ${cpp-jwt_SOURCE_DIR}/include)
target_link_libraries(web_service PRIVATE common network nlohmann_json::nlohmann_json httplib::httplib cpp-jwt::cpp-jwt)
-find_package(OpenSSL REQUIRED)
-target_link_libraries(web_service PRIVATE OpenSSL::SSL OpenSSL::Crypto)
-target_compile_definitions(web_service PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
+if (IOS)
+ # TODO: this is horrific
+ find_package(OpenSSL 3 QUIET)
+ if (OpenSSL_FOUND)
+ target_link_libraries(web_service PRIVATE OpenSSL::SSL OpenSSL::Crypto)
+ if (NOT IOS)
+ target_compile_definitions(web_service PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
+ endif()
+ else()
+ find_package(OpenSSL 3 QUIET PATHS /usr/local/opt/openssl /opt/homebrew/opt/openssl NO_DEFAULT_PATH)
+ if (OpenSSL_FOUND)
+ target_link_libraries(web_service PRIVATE OpenSSL::SSL OpenSSL::Crypto)
+ if (NOT IOS)
+ target_compile_definitions(web_service PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
+ endif()
+ else()
+ message(WARNING "OpenSSL not found or version is less than 3. Some features in web_service may be disabled.")
+ endif()
+ endif()
+else()
+ find_package(OpenSSL REQUIRED)
+ target_link_libraries(web_service PRIVATE OpenSSL::SSL OpenSSL::Crypto)
+ target_compile_definitions(web_service PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
+endif()
diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp
index 1e71406989..60b11fff5a 100644
--- a/src/web_service/web_backend.cpp
+++ b/src/web_service/web_backend.cpp
@@ -16,7 +16,7 @@
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif
#endif
-#include "common/httplib.h"
+#include
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index 1ed1fdff2a..79642711ac 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -362,27 +362,16 @@ target_sources(yuzu
${LANGUAGES}
${THEMES})
-# TODO(crueter): Move Assets.car/icon/icns handling to its own Module.
if (APPLE)
- # Xcode will automatically generate the Assets.car and icns file for us.
- set(_dist "${CMAKE_SOURCE_DIR}/dist")
- if (CMAKE_GENERATOR MATCHES "Xcode")
- set(_icons "${_dist}/eden.icon")
+ # Normal icns
+ set(MACOSX_ICON "${CMAKE_SOURCE_DIR}/dist/eden.icns")
+ set_source_files_properties(${MACOSX_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
+ target_sources(yuzu PRIVATE ${MACOSX_ICON})
- set_target_properties(eden PROPERTIES
- XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME eden
- MACOSX_BUNDLE_ICON_FILE eden
- # Also force xcode to manage signing for us.
- XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED ON
- XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED ON)
- # Otherwise, we'll use our own.
- else()
- set(_icons "${_dist}/eden.icns" "${_dist}/Assets.car")
- endif()
-
- set_source_files_properties(${_icons} PROPERTIES
- MACOSX_PACKAGE_LOCATION Resources)
- target_sources(yuzu PRIVATE ${_icons})
+ # Liquid glass
+ set(MACOSX_LIQUID_GLASS_ICON "${CMAKE_SOURCE_DIR}/dist/Assets.car")
+ set_source_files_properties(${MACOSX_LIQUID_GLASS_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
+ target_sources(yuzu PRIVATE ${MACOSX_LIQUID_GLASS_ICON})
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE)
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)