Start refactoring CMakeLists.txt

This commit is contained in:
2023-11-24 22:17:11 +01:00
parent 60d3547edc
commit 5bcbef65bb
4 changed files with 92 additions and 72 deletions

29
cmake/SetupVulkan.cmake Normal file
View File

@@ -0,0 +1,29 @@
function(SetupVulkan TARGET)
if (APPLE)
# Try to find xcframework of MoltenVK
cmake_path(SET MoltenVK_path NORMALIZE "$ENV{VULKAN_SDK}/../MoltenVK/")
cmake_path(SET MoltenVK_XC_path NORMALIZE "$ENV{VULKAN_SDK}/../MoltenVK/MoltenVK.xcframework")
if (EXISTS "${MoltenVK_path}" AND EXISTS "${MoltenVK_XC_path}")
if (EXISTS "${MoltenVK_path}/include")
set(Vulkan_INCLUDE_DIR "${MoltenVK_path}/include")
endif()
target_link_libraries(MadVoxel_Scan PRIVATE "${MoltenVK_XC_path}/ios-arm64/libMoltenVK.a")
message("Found MoltenVK xcframework: ${MoltenVK_XC_path}")
endif()
else ()
find_package(Vulkan REQUIRED)
target_link_libraries(TARGET PRIVATE Vulkan::Vulkan)
endif ()
target_include_directories(TARGET PUBLIC ${Vulkan_INCLUDE_DIR})
if (ANDROID)
add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
elseif (WIN32)
add_definitions(-DVK_USE_PLATFORM_WIN32_KHR)
elseif (LINUX)
add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
find_package(XCB REQUIRED)
target_link_libraries(TARGET PRIVATE ${XCB_LIBRARIES})
endif()
endfunction()