|
|
|
cmake_minimum_required(VERSION 3.22)
|
|
|
|
project(VulkanSimulation)
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
|
|
|
|
|
|
file(GLOB_RECURSE SRC_FILES src/**.cpp)
|
|
|
|
add_executable(VulkanSimulation ${SRC_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)
|
|
|
|
|
|
|
|
set(ASSIMP_NO_EXPORT ON)
|
|
|
|
set(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT OFF)
|
|
|
|
set(ASSIMP_BUILD_OBJ_IMPORTER ON)
|
|
|
|
set(ASSIMP_BUILD_PLY_IMPORTER ON)
|
|
|
|
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)
|
|
|
|
target_compile_definitions(VulkanSimulation PRIVATE
|
|
|
|
GLM_FORCE_RADIANS
|
|
|
|
GLM_FORCE_DEPTH_ZERO_TO_ONE
|
|
|
|
)
|