From b74c91457ebdc630a3447e0cd47f0b534f7db583 Mon Sep 17 00:00:00 2001 From: Castor215 <132155746+Castor215@users.noreply.github.com> Date: Sat, 11 Nov 2023 19:52:28 +0000 Subject: [PATCH] externals: allow user to use system VulkanMemoryAllocator (#7149) --- externals/CMakeLists.txt | 13 +++++++++++-- externals/cmake-modules/CitraHandleSystemLibs.cmake | 3 +++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 48afa0e1f..d695d2558 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -362,8 +362,17 @@ if (ENABLE_OPENAL) endif() # VMA -add_library(vma INTERFACE) -target_include_directories(vma SYSTEM INTERFACE ./vma/include) +if(USE_SYSTEM_VMA) + add_library(vma INTERFACE) + find_package(VulkanMemoryAllocator REQUIRED) + if(TARGET GPUOpen::VulkanMemoryAllocator) + message(STATUS "Found VulkanMemoryAllocator") + target_link_libraries(vma INTERFACE GPUOpen::VulkanMemoryAllocator) + endif() +else() + add_library(vma INTERFACE) + target_include_directories(vma SYSTEM INTERFACE ./vma/include) +endif() # vulkan-headers add_library(vulkan-headers INTERFACE) diff --git a/externals/cmake-modules/CitraHandleSystemLibs.cmake b/externals/cmake-modules/CitraHandleSystemLibs.cmake index 471301c73..f72115056 100644 --- a/externals/cmake-modules/CitraHandleSystemLibs.cmake +++ b/externals/cmake-modules/CitraHandleSystemLibs.cmake @@ -23,6 +23,7 @@ option(USE_SYSTEM_CRYPTOPP "Use the system cryptopp (instead of the bundled one) option(USE_SYSTEM_CUBEB "Use the system cubeb (instead of the bundled one)" OFF) option(USE_SYSTEM_LODEPNG "Use the system lodepng (instead of the bundled one)" OFF) option(USE_SYSTEM_OPENAL "Use the system OpenAL (instead of the bundled one)" OFF) +option(USE_SYSTEM_VMA "Use the system VulkanMemoryAllocator (instead of the bundled one)" OFF) # Qt and MoltenVK are handled separately CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_SDL2 "Disable system SDL2" OFF "USE_SYSTEM_LIBS" OFF) @@ -45,6 +46,7 @@ CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_CRYPTOPP "Disable system cryptopp" OFF "US CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_CUBEB "Disable system cubeb" OFF "USE_SYSTEM_LIBS" OFF) CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_LODEPNG "Disable system lodepng" OFF "USE_SYSTEM_LIBS" OFF) CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_OPENAL "Disable system OpenAL" OFF "USE_SYSTEM_LIBS" OFF) +CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_VMA "Disable system VulkanMemoryAllocator" OFF "USE_SYSTEM_LIBS" OFF) set(LIB_VAR_LIST SDL2 @@ -67,6 +69,7 @@ set(LIB_VAR_LIST CUBEB LODEPNG OPENAL + VMA ) # First, check that USE_SYSTEM_XXX is not used with USE_SYSTEM_LIBS