[cmake] refactor: Use CPM over submodules #143

Merged
crueter merged 42 commits from refactor/cpm into master 2025-08-04 04:50:17 +02:00
4 changed files with 32 additions and 22 deletions
Showing only changes of commit 198f911d28 - Show all commits

View file

@ -87,9 +87,9 @@ option(ENABLE_MICROPROFILE "Enables microprofile capabilities" OFF)
option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}") option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF) option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF)
else() else()
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON) option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
endif() endif()
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON) option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
@ -394,13 +394,13 @@ find_package(VulkanMemoryAllocator CONFIG)
find_package(ZLIB 1.2 REQUIRED) 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)
endif() # endif()
if (NOT YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) # if (NOT YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES)
find_package(VulkanUtilityLibraries) # find_package(VulkanUtilityLibraries)
endif() # endif()
if (NOT YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) if (NOT YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)

View file

@ -162,27 +162,35 @@ if (YUZU_USE_BUNDLED_FFMPEG)
set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE) set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE)
endif() endif()
# TODO(crueter): System vk headers is broken (at least on gentoo lol)
# Vulkan-Headers # Vulkan-Headers
if (YUZU_USE_EXTERNAL_VULKAN_HEADERS) if (YUZU_USE_EXTERNAL_VULKAN_HEADERS)
CPMAddPackage( set(CPM_USE_LOCAL_PACKAGES OFF)
NAME VulkanHeaders else()
VERSION 1.3.274 set(CPM_USE_LOCAL_PACKAGES ON)
GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Headers.git"
GIT_TAG 89268a6d17
)
endif() endif()
# TODO(crueter): System vk-headers are too new for externals vk-util
CPMAddPackage(
NAME VulkanHeaders
VERSION 1.3.274
GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Headers.git"
GIT_TAG 89268a6d17
)
# Vulkan-Utility-Libraries # Vulkan-Utility-Libraries
if (YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) if (YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES)
CPMAddPackage( set(CPM_USE_LOCAL_PACKAGES OFF)
NAME VulkanUtilityLibraries else()
GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git" set(CPM_USE_LOCAL_PACKAGES ON)
GIT_TAG df2e358152
)
endif() endif()
CPMAddPackage(
NAME VulkanUtilityLibraries
GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git"
GIT_TAG df2e358152
)
# SPIRV-Tools # SPIRV-Tools
if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS)
set(SPIRV_SKIP_EXECUTABLES ON) set(SPIRV_SKIP_EXECUTABLES ON)

View file

@ -24,6 +24,7 @@ if (cubeb_ADDED)
else() else()
target_compile_options(cubeb PRIVATE target_compile_options(cubeb PRIVATE
/wd4456 /wd4456
/wd4458
) )
endif() endif()
endif() endif()

View file

@ -328,7 +328,8 @@ target_link_options(video_core PRIVATE ${FFmpeg_LDFLAGS})
add_dependencies(video_core host_shaders) add_dependencies(video_core host_shaders)
target_include_directories(video_core PRIVATE ${HOST_SHADERS_INCLUDE}) target_include_directories(video_core PRIVATE ${HOST_SHADERS_INCLUDE})
target_link_libraries(video_core PRIVATE sirit Vulkan::Headers Vulkan::UtilityHeaders GPUOpen::VulkanMemoryAllocator)
target_link_libraries(video_core PRIVATE sirit Vulkan::Headers VulkanUtilityHeaders GPUOpen::VulkanMemoryAllocator)
if (ENABLE_NSIGHT_AFTERMATH) if (ENABLE_NSIGHT_AFTERMATH)
if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK}) if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK})