Browse Source
[cmake] fix issues when using CPMUTIL_FORCE_SYSTEM (#399)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/399
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: Marcin Serwin <marcin@serwin.dev>
Co-committed-by: Marcin Serwin <marcin@serwin.dev>
pull/313/head
Marcin Serwin
3 months ago
committed by
crueter
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
6 changed files with
30 additions and
4 deletions
-
CMakeLists.txt
-
CMakeModules/Findsirit.cmake
-
externals/cpmfile.json
-
externals/nx_tzdb/CMakeLists.txt
-
src/core/CMakeLists.txt
-
src/dynarmic/src/dynarmic/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() |
|
|
|
|
|
|
|
@ -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 |
|
|
|
) |
|
|
|
@ -15,6 +15,7 @@ |
|
|
|
"repo": "eden-emulator/sirit", |
|
|
|
"sha": "db1f1e8ab5", |
|
|
|
"hash": "73eb3a042848c63a10656545797e85f40d142009dfb7827384548a385e1e28e1ac72f42b25924ce530d58275f8638554281e884d72f9c7aaf4ed08690a414b05", |
|
|
|
"find_args": "MODULE", |
|
|
|
"options": [ |
|
|
|
"SIRIT_USE_SYSTEM_SPIRV_HEADERS ON" |
|
|
|
] |
|
|
|
|
|
|
|
@ -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") |
|
|
|
|
|
|
|
|
|
|
|
@ -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() |
|
|
|
|
|
|
|
@ -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 |
|
|
|
|