cmake_minimum_required(VERSION 3.22) project(VulkanSimulation) include(CMakePrintHelpers) set(CMAKE_CXX_STANDARD 20) file(GLOB_RECURSE SRC_FILES src/**.cpp) file(GLOB IMGUI_FILES lib/imgui/*.cpp lib/imgui/*.h lib/imgui/backends/imgui_impl_glfw* lib/imgui/backends/imgui_impl_vulkan*) cmake_print_variables(IMGUI_FILES) add_executable(VulkanSimulation ${SRC_FILES} ${IMGUI_FILES}) find_package(Vulkan REQUIRED) find_package(OpenMP REQUIRED) include(deps.cmake) if (WIN32) FetchContent_MakeAvailable(glfw) endif () FetchContent_MakeAvailable(glm) FetchContent_MakeAvailable(vma) FetchContent_MakeAvailable(tetgen) FetchContent_MakeAvailable(assimp) target_compile_options(assimp PRIVATE -Wno-unknown-pragmas) target_link_libraries(VulkanSimulation glm glfw Vulkan::Vulkan GPUOpen::VulkanMemoryAllocator assimp tet OpenMP::OpenMP_CXX) target_include_directories(VulkanSimulation PRIVATE include lib) target_include_directories(VulkanSimulation PRIVATE include lib/imgui) target_compile_definitions(VulkanSimulation PRIVATE GLM_FORCE_RADIANS GLM_FORCE_DEPTH_ZERO_TO_ONE BLOCK_SIZE_GRAB=32 BLOCK_SIZE_PBD=32 BLOCK_SIZE_NORMAL=32 )