diff --git a/CMakeLists.txt b/CMakeLists.txt index fe5fb3f5d8..98db004339 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,7 +50,7 @@ CMAKE_DEPENDENT_OPTION(ENABLE_SDL2 "Enable the SDL2 frontend" ON "NOT ANDROID" O set(EXT_DEFAULT ON) -if (PLATFORM_FREEBSD) +if (PLATFORM_FREEBSD OR APPLE) set(EXT_DEFAULT OFF) endif() @@ -455,10 +455,17 @@ if (YUZU_USE_CPM) if (enet_ADDED) target_include_directories(enet INTERFACE ${enet_SOURCE_DIR}/include) + if (NOT TARGET enet::enet) + add_library(enet::enet ALIAS enet) + endif() endif() # Opus AddJsonPackage(opus) + + if (NOT TARGET Opus::opus) + add_library(Opus::opus ALIAS opus) + endif() else() # Enforce the search mode of non-required packages for better and shorter failure messages find_package(fmt 8 REQUIRED) diff --git a/CMakeModules/CPMUtil.cmake b/CMakeModules/CPMUtil.cmake index 9daada47ad..6ea8243cf7 100644 --- a/CMakeModules/CPMUtil.cmake +++ b/CMakeModules/CPMUtil.cmake @@ -11,10 +11,12 @@ # 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 OFF) -else() set(BUNDLED_DEFAULT ON) +else() + set(BUNDLED_DEFAULT OFF) endif() option(CPMUTIL_FORCE_BUNDLED @@ -23,7 +25,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) # TODO(crueter): Better solution for separate cpmfiles e.g. per-directory diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index e917e4e7d8..4d7686f0f2 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -54,6 +54,7 @@ endif() add_subdirectory(glad) # mbedtls +# TODO(crueter): Findmbedtls that ONLY accepts mbedtls2 AddJsonPackage(mbedtls) if (mbedtls_ADDED) diff --git a/externals/cpmfile.json b/externals/cpmfile.json index 4bc4a97ca4..a3e58be2c7 100644 --- a/externals/cpmfile.json +++ b/externals/cpmfile.json @@ -5,7 +5,8 @@ "hash": "769ad1e94c570671071e1f2a5c0f1027e0bf6bcdd1a80ea8ac970f2c86bc45ce4e31aa88d6d8110fc1bed1de81c48bc624df1b38a26f8b340a44e109d784a966", "patches": [ "0001-cmake-version.patch" - ] + ], + "bundled": true }, "spirv-headers": { "package": "SPIRV-Headers", diff --git a/externals/libusb/libusb b/externals/libusb/libusb index c060e9ce30..3dbfa16f0c 160000 --- a/externals/libusb/libusb +++ b/externals/libusb/libusb @@ -1 +1 @@ -Subproject commit c060e9ce30ac2e3ffb49d94209c4dae77b6642f7 +Subproject commit 3dbfa16f0cd9e8ed4fec916c6c00f41c738cb8f4 diff --git a/src/audio_core/CMakeLists.txt b/src/audio_core/CMakeLists.txt index e040ec756d..f72448bc87 100644 --- a/src/audio_core/CMakeLists.txt +++ b/src/audio_core/CMakeLists.txt @@ -227,7 +227,7 @@ else() endif() target_include_directories(audio_core PRIVATE ${OPUS_INCLUDE_DIRS}) -target_link_libraries(audio_core PUBLIC common core opus) +target_link_libraries(audio_core PUBLIC common core Opus::opus) if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) target_link_libraries(audio_core PRIVATE dynarmic::dynarmic) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 1aa433db32..daeeb91acc 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -283,4 +283,13 @@ if(YUZU_USE_PRECOMPILED_HEADERS) target_precompile_headers(common PRIVATE precompiled_headers.h) endif() +# IOPS (needed for power state) requires linking to IOKit +if (APPLE) + find_library(IOKIT_LIBRARY IOKit) + if(NOT IOKIT_LIBRARY) + message(FATAL_ERROR "IOKit not found, did you install XCode tools?") + endif() + target_link_libraries(common PRIVATE ${IOKIT_LIBRARY}) +endif() + create_target_directory_groups(common) diff --git a/src/core/arm/nce/interpreter_visitor.cpp b/src/core/arm/nce/interpreter_visitor.cpp index c908409d8f..c18590d5ff 100644 --- a/src/core/arm/nce/interpreter_visitor.cpp +++ b/src/core/arm/nce/interpreter_visitor.cpp @@ -2,8 +2,8 @@ // SPDX-FileCopyrightText: Copyright 2023 merryhime // SPDX-License-Identifier: GPL-2.0-or-later -#include "common/bit_cast.h" #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 43335054d4..d292f4ebee 100644 --- a/src/core/arm/nce/interpreter_visitor.h +++ b/src/core/arm/nce/interpreter_visitor.h @@ -5,6 +5,7 @@ #pragma once #include +#include #include #include "core/arm/nce/visitor_base.h" diff --git a/src/core/arm/nce/patcher.cpp b/src/core/arm/nce/patcher.cpp index b8387ce7cb..e57fd95fa5 100644 --- a/src/core/arm/nce/patcher.cpp +++ b/src/core/arm/nce/patcher.cpp @@ -4,13 +4,11 @@ #include "common/arm64/native_clock.h" #include "common/bit_cast.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/hle/kernel/k_thread.h" +#include "core/memory.h" namespace Core::NCE { diff --git a/src/dynarmic/tests/CMakeLists.txt b/src/dynarmic/tests/CMakeLists.txt index 85d86c7966..f9b4ced733 100644 --- a/src/dynarmic/tests/CMakeLists.txt +++ b/src/dynarmic/tests/CMakeLists.txt @@ -133,6 +133,8 @@ target_include_directories(dynarmic_tests PRIVATE . ../src) target_compile_options(dynarmic_tests PRIVATE ${DYNARMIC_CXX_FLAGS}) target_compile_definitions(dynarmic_tests PRIVATE FMT_USE_USER_DEFINED_LITERALS=1) -target_compile_options(dynarmic_tests PRIVATE -mavx2) +if (ARCHITECTURE_x86_64) + target_compile_options(dynarmic_tests PRIVATE -mavx2) +endif() add_test(dynarmic_tests dynarmic_tests --durations yes) diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt index d0787b0936..5a21f67bdf 100644 --- a/src/network/CMakeLists.txt +++ b/src/network/CMakeLists.txt @@ -19,7 +19,7 @@ add_library(network STATIC create_target_directory_groups(network) -target_link_libraries(network PRIVATE common enet Boost::headers) +target_link_libraries(network PRIVATE common enet::enet Boost::headers) if (ENABLE_WEB_SERVICE) target_compile_definitions(network PRIVATE -DENABLE_WEB_SERVICE) target_link_libraries(network PRIVATE web_service) diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index 0ce8f3b898..94f0651820 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -376,7 +376,7 @@ if (APPLE) if (NOT USE_SYSTEM_MOLTENVK) set(MOLTENVK_PLATFORM "macOS") - set(MOLTENVK_VERSION "v1.3.0") + set(MOLTENVK_VERSION "v1.4.0") download_moltenvk_external(${MOLTENVK_PLATFORM} ${MOLTENVK_VERSION}) endif() find_library(MOLTENVK_LIBRARY MoltenVK REQUIRED)