aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt7
-rw-r--r--CMakeModules/Findsirit.cmake11
-rw-r--r--externals/cpmfile.json1
-rw-r--r--externals/nx_tzdb/CMakeLists.txt9
-rw-r--r--src/core/CMakeLists.txt2
-rw-r--r--src/dynarmic/src/dynarmic/CMakeLists.txt4
6 files changed, 30 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 144e77684e..6a9e15cfbd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -204,6 +204,8 @@ CMAKE_DEPENDENT_OPTION(YUZU_USE_FASTER_LD "Check if a faster linker is available
CMAKE_DEPENDENT_OPTION(USE_SYSTEM_MOLTENVK "Use the system MoltenVK lib (instead of the bundled one)" OFF "APPLE" OFF)
+set(YUZU_TZDB_PATH "" CACHE STRING "Path to a pre-downloaded timezone database")
+
set(DEFAULT_ENABLE_OPENSSL ON)
if (ANDROID OR WIN32 OR APPLE OR PLATFORM_SUN)
# - Windows defaults to the Schannel backend.
@@ -465,6 +467,7 @@ else()
find_package(Opus 1.3 MODULE REQUIRED)
find_package(ZLIB 1.2 REQUIRED)
find_package(zstd 1.5 REQUIRED MODULE)
+ find_package(Boost 1.79.0 REQUIRED headers context system fiber)
if (YUZU_TESTS)
find_package(Catch2 3.0.1 REQUIRED)
@@ -596,6 +599,10 @@ find_package(libusb)
find_package(VulkanMemoryAllocator)
find_package(SPIRV-Tools)
+if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
+ find_package(xbyak)
+endif()
+
if (ENABLE_WEB_SERVICE)
find_package(httplib)
endif()
diff --git a/CMakeModules/Findsirit.cmake b/CMakeModules/Findsirit.cmake
new file mode 100644
index 0000000000..1611efaad8
--- /dev/null
+++ b/CMakeModules/Findsirit.cmake
@@ -0,0 +1,11 @@
+# SPDX-FileCopyrightText: 2025 Eden Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+include(FindPackageHandleStandardArgs)
+
+find_package(PkgConfig QUIET)
+pkg_search_module(sirit QUIET IMPORTED_TARGET sirit)
+find_package_handle_standard_args(sirit
+ REQUIRED_VARS sirit_LINK_LIBRARIES
+ VERSION_VAR sirit_VERSION
+)
diff --git a/externals/cpmfile.json b/externals/cpmfile.json
index 57258f771b..65f50ffdfc 100644
--- a/externals/cpmfile.json
+++ b/externals/cpmfile.json
@@ -15,6 +15,7 @@
"repo": "eden-emulator/sirit",
"sha": "db1f1e8ab5",
"hash": "73eb3a042848c63a10656545797e85f40d142009dfb7827384548a385e1e28e1ac72f42b25924ce530d58275f8638554281e884d72f9c7aaf4ed08690a414b05",
+ "find_args": "MODULE",
"options": [
"SIRIT_USE_SYSTEM_SPIRV_HEADERS ON"
]
diff --git a/externals/nx_tzdb/CMakeLists.txt b/externals/nx_tzdb/CMakeLists.txt
index 242e1e1fcf..a08c80f2bd 100644
--- a/externals/nx_tzdb/CMakeLists.txt
+++ b/externals/nx_tzdb/CMakeLists.txt
@@ -33,9 +33,12 @@ if (CAN_BUILD_NX_TZDB AND NOT YUZU_DOWNLOAD_TIME_ZONE_DATA)
set(NX_TZDB_TZ_DIR "${NX_TZDB_BASE_DIR}/zoneinfo")
endif()
-# TODO(crueter): This is a terrible solution, but MSVC fails to link without it
-# Need to investigate further but I still can't reproduce...
-if (MSVC)
+if(NOT YUZU_TZDB_PATH STREQUAL "")
+ set(NX_TZDB_BASE_DIR "${YUZU_TZDB_PATH}")
+ set(NX_TZDB_TZ_DIR "${NX_TZDB_BASE_DIR}/zoneinfo")
+elseif (MSVC)
+ # TODO(crueter): This is a terrible solution, but MSVC fails to link without it
+ # Need to investigate further but I still can't reproduce...
set(NX_TZDB_VERSION "250725")
set(NX_TZDB_ARCHIVE "${CPM_SOURCE_CACHE}/nx_tzdb/${NX_TZDB_VERSION}.zip")
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 0be60b55c6..1e8e4ec07a 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -1200,7 +1200,7 @@ else()
target_link_libraries(core PUBLIC Boost::headers)
endif()
-target_link_libraries(core PRIVATE fmt::fmt nlohmann_json::nlohmann_json RenderDoc::API mbedtls)
+target_link_libraries(core PRIVATE fmt::fmt nlohmann_json::nlohmann_json RenderDoc::API mbedtls mbedcrypto)
if (MINGW)
target_link_libraries(core PRIVATE ${MSWSOCK_LIBRARY})
endif()
diff --git a/src/dynarmic/src/dynarmic/CMakeLists.txt b/src/dynarmic/src/dynarmic/CMakeLists.txt
index efae44d917..b74626bcd5 100644
--- a/src/dynarmic/src/dynarmic/CMakeLists.txt
+++ b/src/dynarmic/src/dynarmic/CMakeLists.txt
@@ -160,6 +160,10 @@ if ("A64" IN_LIST DYNARMIC_FRONTENDS)
endif()
if ("x86_64" IN_LIST ARCHITECTURE)
+ # Newer versions of xbyak (>= 7.25.0) have stricter checks that currently
+ # fail in dynarmic
+ target_compile_definitions(dynarmic PRIVATE XBYAK_STRICT_CHECK_MEM_REG_SIZE=0)
+
target_compile_definitions(dynarmic PRIVATE XBYAK_OLD_DISP_CHECK=1)
target_link_libraries(dynarmic
PRIVATE