|
|
@ -58,14 +58,18 @@ else() |
|
|
option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" ON) |
|
|
option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" ON) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") |
|
|
|
|
|
option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" OFF) |
|
|
|
|
|
else() |
|
|
|
|
|
option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") |
|
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") |
|
|
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" OFF) |
|
|
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" OFF) |
|
|
else() |
|
|
else() |
|
|
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" ON) |
|
|
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" ON) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON "YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES" OFF) |
|
|
|
|
|
|
|
|
|
|
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") |
|
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") |
|
|
option(YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS "Use SPIRV-Tools from externals" OFF) |
|
|
option(YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS "Use SPIRV-Tools from externals" OFF) |
|
|
else() |
|
|
else() |
|
|
@ -100,6 +104,7 @@ CMAKE_DEPENDENT_OPTION(YUZU_ROOM_STANDALONE "Enable standalone room executable" |
|
|
|
|
|
|
|
|
CMAKE_DEPENDENT_OPTION(YUZU_CMD "Compile the eden-cli executable" ON "NOT ANDROID" OFF) |
|
|
CMAKE_DEPENDENT_OPTION(YUZU_CMD "Compile the eden-cli executable" ON "NOT ANDROID" OFF) |
|
|
|
|
|
|
|
|
|
|
|
# TODO(crueter): remove? cpm? |
|
|
CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF) |
|
|
CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF) |
|
|
|
|
|
|
|
|
option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") |
|
|
option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") |
|
|
@ -160,6 +165,8 @@ if (ANDROID) |
|
|
set(CMAKE_POLICY_VERSION_MINIMUM 3.5) # Workaround for Oboe |
|
|
set(CMAKE_POLICY_VERSION_MINIMUM 3.5) # Workaround for Oboe |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm) |
|
|
|
|
|
|
|
|
if (YUZU_USE_BUNDLED_VCPKG) |
|
|
if (YUZU_USE_BUNDLED_VCPKG) |
|
|
if (ANDROID) |
|
|
if (ANDROID) |
|
|
set(ENV{ANDROID_NDK_HOME} "${ANDROID_NDK}") |
|
|
set(ENV{ANDROID_NDK_HOME} "${ANDROID_NDK}") |
|
|
@ -204,7 +211,16 @@ if (YUZU_USE_BUNDLED_VCPKG) |
|
|
list(APPEND VCPKG_MANIFEST_FEATURES "android") |
|
|
list(APPEND VCPKG_MANIFEST_FEATURES "android") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
include(${CMAKE_SOURCE_DIR}/externals/vcpkg/scripts/buildsystems/vcpkg.cmake) |
|
|
|
|
|
|
|
|
include(CPM) |
|
|
|
|
|
set(CPM_USE_LOCAL_PACKAGES OFF) |
|
|
|
|
|
|
|
|
|
|
|
CPMAddPackage( |
|
|
|
|
|
NAME vcpkg |
|
|
|
|
|
DOWNLOAD_ONLY YES |
|
|
|
|
|
URL "https://github.com/microsoft/vcpkg/archive/ea2a964f93.zip" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
include(${vcpkg_SOURCE_DIR}/scripts/buildsystems/vcpkg.cmake) |
|
|
elseif(NOT "$ENV{VCPKG_TOOLCHAIN_FILE}" STREQUAL "") |
|
|
elseif(NOT "$ENV{VCPKG_TOOLCHAIN_FILE}" STREQUAL "") |
|
|
# Disable manifest mode (use vcpkg classic mode) when using a custom vcpkg installation |
|
|
# Disable manifest mode (use vcpkg classic mode) when using a custom vcpkg installation |
|
|
option(VCPKG_MANIFEST_MODE "") |
|
|
option(VCPKG_MANIFEST_MODE "") |
|
|
@ -324,7 +340,7 @@ if (UNIX) |
|
|
add_definitions(-DYUZU_UNIX=1) |
|
|
add_definitions(-DYUZU_UNIX=1) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if (ARCHITECTURE_arm64 AND (ANDROID OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")) |
|
|
|
|
|
|
|
|
if (ARCHITECTURE_arm64 AND (ANDROID OR APPLE OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")) |
|
|
set(HAS_NCE 1) |
|
|
set(HAS_NCE 1) |
|
|
add_definitions(-DHAS_NCE=1) |
|
|
add_definitions(-DHAS_NCE=1) |
|
|
endif() |
|
|
endif() |
|
|
@ -386,7 +402,6 @@ find_package(fmt 8 REQUIRED) |
|
|
find_package(LLVM MODULE COMPONENTS Demangle) |
|
|
find_package(LLVM MODULE COMPONENTS Demangle) |
|
|
find_package(lz4 REQUIRED) |
|
|
find_package(lz4 REQUIRED) |
|
|
find_package(nlohmann_json 3.8 REQUIRED) |
|
|
find_package(nlohmann_json 3.8 REQUIRED) |
|
|
find_package(Opus 1.3 MODULE) |
|
|
|
|
|
find_package(RenderDoc MODULE) |
|
|
find_package(RenderDoc MODULE) |
|
|
find_package(SimpleIni MODULE) |
|
|
find_package(SimpleIni MODULE) |
|
|
find_package(stb MODULE) |
|
|
find_package(stb MODULE) |
|
|
@ -395,13 +410,14 @@ find_package(ZLIB 1.2 REQUIRED) |
|
|
find_package(zstd 1.5 REQUIRED) |
|
|
find_package(zstd 1.5 REQUIRED) |
|
|
|
|
|
|
|
|
# if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) |
|
|
# if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) |
|
|
# find_package(VulkanHeaders 1.3.274) |
|
|
|
|
|
|
|
|
# find_package(VulkanHeaders 1.3.274 REQUIRED) |
|
|
# endif() |
|
|
# endif() |
|
|
|
|
|
|
|
|
# if (NOT YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) |
|
|
# if (NOT YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) |
|
|
# find_package(VulkanUtilityLibraries) |
|
|
|
|
|
|
|
|
# find_package(VulkanUtilityLibraries REQUIRED) |
|
|
# endif() |
|
|
# endif() |
|
|
|
|
|
|
|
|
|
|
|
# TODO(crueter): Work around this |
|
|
if (NOT YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) |
|
|
if (NOT YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) |
|
|
find_package(PkgConfig REQUIRED) |
|
|
find_package(PkgConfig REQUIRED) |
|
|
pkg_check_modules(SPIRV-Tools REQUIRED SPIRV-Tools) |
|
|
pkg_check_modules(SPIRV-Tools REQUIRED SPIRV-Tools) |
|
|
@ -427,6 +443,10 @@ if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) |
|
|
find_package(dynarmic 6.4.0 CONFIG) |
|
|
find_package(dynarmic 6.4.0 CONFIG) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
if (ENABLE_CUBEB) |
|
|
|
|
|
find_package(cubeb CONFIG) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
if (USE_DISCORD_PRESENCE) |
|
|
if (USE_DISCORD_PRESENCE) |
|
|
find_package(DiscordRPC MODULE) |
|
|
find_package(DiscordRPC MODULE) |
|
|
endif() |
|
|
endif() |
|
|
@ -488,8 +508,6 @@ set(FFmpeg_COMPONENTS |
|
|
avutil |
|
|
avutil |
|
|
swscale) |
|
|
swscale) |
|
|
|
|
|
|
|
|
set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm) |
|
|
|
|
|
|
|
|
|
|
|
add_subdirectory(externals) |
|
|
add_subdirectory(externals) |
|
|
|
|
|
|
|
|
if (ENABLE_QT) |
|
|
if (ENABLE_QT) |
|
|
@ -500,7 +518,7 @@ if (ENABLE_QT) |
|
|
if (NOT Qt6_DIR) |
|
|
if (NOT Qt6_DIR) |
|
|
set(Qt6_DIR "" CACHE PATH "Additional path to search for Qt6 libraries like C:/Qt/6.8.3/msvc2022_64/lib/cmake/Qt6") |
|
|
set(Qt6_DIR "" CACHE PATH "Additional path to search for Qt6 libraries like C:/Qt/6.8.3/msvc2022_64/lib/cmake/Qt6") |
|
|
endif() |
|
|
endif() |
|
|
list(APPEND CMAKE_PREFIX_PATH "${Qt6_DIR}") |
|
|
|
|
|
|
|
|
list(APPEND CMAKE_PREFIX_PATH "${Qt6_DIR}") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
find_package(Qt6 REQUIRED COMPONENTS Widgets Concurrent) |
|
|
find_package(Qt6 REQUIRED COMPONENTS Widgets Concurrent) |
|
|
|