diff --git a/CMakeLists.txt b/CMakeLists.txt index d6fc210943..3c466e8120 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,6 +156,8 @@ set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundl option(ENABLE_CUBEB "Enables the cubeb audio backend" ON) +# See https://github.com/llvm/llvm-project/issues/123946 +# OpenBSD va_list doesn't play nice with precompiled headers set(EXT_DEFAULT OFF) if (MSVC OR ANDROID) set(EXT_DEFAULT ON) @@ -453,7 +455,9 @@ if (YUZU_USE_CPM) # Opus AddJsonPackage(opus) - + if (NOT TARGET Opus::opus) + add_library(Opus::opus ALIAS opus) + endif() if (Opus_ADDED) if (MSVC AND CXX_CLANG) target_compile_options(opus PRIVATE diff --git a/CMakeModules/CPMUtil.cmake b/CMakeModules/CPMUtil.cmake index 53b9e24079..639edec5d5 100644 --- a/CMakeModules/CPMUtil.cmake +++ b/CMakeModules/CPMUtil.cmake @@ -1,6 +1,15 @@ # SPDX-FileCopyrightText: Copyright 2025 crueter # SPDX-License-Identifier: GPL-3.0-or-later +# Created-By: crueter +# Docs will come at a later date, mostly this is to just reduce boilerplate +# and some cmake magic to allow for runtime viewing of dependency versions + +# Future crueter: Wow this was a lie and a half, at this point I might as well make my own CPN +# haha just kidding... unless? + +cmake_minimum_required(VERSION 3.22) + if (MSVC OR ANDROID) set(BUNDLED_DEFAULT ON) else() @@ -13,7 +22,6 @@ option(CPMUTIL_FORCE_BUNDLED option(CPMUTIL_FORCE_SYSTEM "Force system packages for all CPM dependencies (NOT RECOMMENDED)" OFF) -cmake_minimum_required(VERSION 3.22) include(CPM) # cpmfile parsing diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 18491962b2..2860909567 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -186,6 +186,20 @@ endif() # Glad add_subdirectory(glad) +# mbedtls +# TODO(crueter): Findmbedtls that ONLY accepts mbedtls2 +AddJsonPackage(mbedtls) + +if (mbedtls_ADDED) + target_include_directories(mbedtls PUBLIC ${mbedtls_SOURCE_DIR}/include) + + if (NOT MSVC) + target_compile_options(mbedcrypto PRIVATE + -Wno-unused-but-set-variable + -Wno-string-concatenation) + endif() +endif() + # libusb if (ENABLE_LIBUSB) add_subdirectory(libusb) diff --git a/externals/cpmfile.json b/externals/cpmfile.json index 47fb859268..240bf1e225 100644 --- a/externals/cpmfile.json +++ b/externals/cpmfile.json @@ -7,6 +7,21 @@ "find_args": "CONFIG", "git_version": "3.3.0" }, + "mbedtls": { + "repo": "Mbed-TLS/mbedtls", + "sha": "8c88150ca1", + "hash": "769ad1e94c570671071e1f2a5c0f1027e0bf6bcdd1a80ea8ac970f2c86bc45ce4e31aa88d6d8110fc1bed1de81c48bc624df1b38a26f8b340a44e109d784a966", + "patches": [ + "0001-cmake-version.patch" + ], + "bundled": true + }, + "spirv-headers": { + "package": "SPIRV-Headers", + "repo": "KhronosGroup/SPIRV-Headers", + "sha": "4e209d3d7e", + "hash": "f48bbe18341ed55ea0fe280dbbbc0a44bf222278de6e716e143ca1e95ca320b06d4d23d6583fbf8d03e1428f3dac8fa00e5b82ddcd6b425e6236d85af09550a4" + }, "sirit": { "repo": "eden-emulator/sirit", "git_version": "1.0.3", diff --git a/src/core/arm/nce/interpreter_visitor.cpp b/src/core/arm/nce/interpreter_visitor.cpp index 79064207ee..bd6f85c9d5 100644 --- a/src/core/arm/nce/interpreter_visitor.cpp +++ b/src/core/arm/nce/interpreter_visitor.cpp @@ -7,6 +7,7 @@ #include #include "core/arm/nce/interpreter_visitor.h" +#include "core/memory.h" #include "dynarmic/common/context.h" namespace Core { diff --git a/src/core/arm/nce/interpreter_visitor.h b/src/core/arm/nce/interpreter_visitor.h index c717a363f3..bdb27c26cb 100644 --- a/src/core/arm/nce/interpreter_visitor.h +++ b/src/core/arm/nce/interpreter_visitor.h @@ -9,6 +9,7 @@ #include #include +#include #include #include diff --git a/src/core/arm/nce/patcher.cpp b/src/core/arm/nce/patcher.cpp index 28862c80b9..4623bbd89b 100644 --- a/src/core/arm/nce/patcher.cpp +++ b/src/core/arm/nce/patcher.cpp @@ -5,15 +5,14 @@ #include #include "common/arm64/native_clock.h" #include "common/literals.h" -#include "core/arm/nce/arm_nce.h" #include "core/arm/nce/guest_context.h" #include "core/arm/nce/instructions.h" #include "core/arm/nce/patcher.h" #include "core/core.h" #include "core/core_timing.h" #include "core/hle/kernel/svc.h" -#include "core/memory.h" #include "core/hle/kernel/k_thread.h" +#include "core/memory.h" namespace Core::NCE {