diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f71a8b3e3..cee720940 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,13 +3,8 @@ cmake_minimum_required(VERSION 3.22) -# Dynarmic has cmake_minimum_required(3.12) and we may want to override -# some of its variables, which is only possible in 3.13+ -set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) - list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules") -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/find-modules") include(DownloadExternals) include(CMakeDependentOption) @@ -22,6 +17,8 @@ CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" ON # On Linux system SDL2 is likely to be lacking HIDAPI support which have drawbacks but is needed for SDL motion CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" ON "ENABLE_SDL2;NOT MSVC" OFF) +option(ENABLE_LIBUSB "Enable the use of LibUSB" ON) + option(ENABLE_OPENGL "Enable OpenGL" ON) mark_as_advanced(FORCE ENABLE_OPENGL) option(ENABLE_QT "Enable the Qt frontend" ON) @@ -35,6 +32,8 @@ option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON) option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" "${WIN32}") +option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON) + option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF) option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF) @@ -47,6 +46,8 @@ option(YUZU_TESTS "Compile tests" ON) option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON) +option(YUZU_ROOM "Compile LDN room server" ON) + CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile Windows crash dump (Minidump) support" OFF "WIN32" OFF) option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") @@ -201,36 +202,43 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) # System imported libraries # ======================================================================= -find_package(enet 1.3) +# Enforce the search mode of non-required packages for better and shorter failure messages +find_package(enet 1.3 MODULE) find_package(fmt 9 REQUIRED) -find_package(inih) -find_package(libusb 1.0.24) +find_package(inih MODULE) find_package(lz4 REQUIRED) find_package(nlohmann_json 3.8 REQUIRED) -find_package(Opus 1.3) -find_package(Vulkan 1.3.238) +find_package(Opus 1.3 MODULE) find_package(ZLIB 1.2 REQUIRED) find_package(zstd 1.5 REQUIRED) +if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) + find_package(Vulkan 1.3.238 REQUIRED) +endif() + +if (ENABLE_LIBUSB) + find_package(libusb 1.0.24 MODULE) +endif() + if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64) - find_package(xbyak 6) + find_package(xbyak 6 CONFIG) endif() if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) - find_package(dynarmic 6.4.0) + find_package(dynarmic 6.4.0 CONFIG) endif() if (ENABLE_CUBEB) - find_package(cubeb) + find_package(cubeb CONFIG) endif() if (USE_DISCORD_PRESENCE) - find_package(DiscordRPC) + find_package(DiscordRPC MODULE) endif() if (ENABLE_WEB_SERVICE) - find_package(cpp-jwt 1.4) - find_package(httplib 0.11) + find_package(cpp-jwt 1.4 CONFIG) + find_package(httplib 0.11 MODULE) endif() if (YUZU_TESTS) |