76 lines
2.1 KiB
CMake
76 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.22)
|
|
project(VulkanEngine)
|
|
|
|
find_package(Vulkan REQUIRED)
|
|
|
|
include(cmake/Shaders.cmake)
|
|
include(FetchContent)
|
|
|
|
FetchContent_Declare(
|
|
glm
|
|
GIT_REPOSITORY "https://github.com/g-truc/glm.git"
|
|
GIT_TAG "1.0.1"
|
|
GIT_SHALLOW ON
|
|
)
|
|
FetchContent_MakeAvailable(glm)
|
|
|
|
FetchContent_Declare(
|
|
spdlog
|
|
GIT_REPOSITORY "https://github.com/gabime/spdlog.git"
|
|
GIT_TAG "v1.15.2"
|
|
GIT_SHALLOW ON
|
|
)
|
|
FetchContent_MakeAvailable(spdlog)
|
|
|
|
FetchContent_Declare(
|
|
glfw
|
|
GIT_REPOSITORY "https://github.com/glfw/glfw.git"
|
|
GIT_TAG "3.4"
|
|
GIT_SHALLOW ON
|
|
)
|
|
FetchContent_MakeAvailable(glfw)
|
|
|
|
FetchContent_Declare(
|
|
GSL
|
|
GIT_REPOSITORY "https://github.com/microsoft/GSL.git"
|
|
GIT_TAG "v4.2.0"
|
|
GIT_SHALLOW ON
|
|
)
|
|
FetchContent_MakeAvailable(GSL)
|
|
|
|
FetchContent_Declare(
|
|
ASSIMP
|
|
GIT_REPOSITORY "https://github.com/assimp/assimp.git"
|
|
GIT_TAG "v5.4.3"
|
|
GIT_SHALLOW ON
|
|
)
|
|
FetchContent_MakeAvailable(ASSIMP)
|
|
|
|
file(GLOB_RECURSE VulkanEngineSources CONFIGURE_DEPENDS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/glfw/*.cpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/vulkan/*.cpp"
|
|
)
|
|
|
|
add_executable(VulkanEngine ${VulkanEngineSources})
|
|
target_link_libraries(VulkanEngine PRIVATE Vulkan::Vulkan)
|
|
target_link_libraries(VulkanEngine PRIVATE glm)
|
|
target_link_libraries(VulkanEngine PRIVATE glfw)
|
|
target_link_libraries(VulkanEngine PRIVATE Microsoft.GSL::GSL)
|
|
target_link_libraries(VulkanEngine PRIVATE spdlog)
|
|
target_link_libraries(VulkanEngine PRIVATE assimp::assimp)
|
|
|
|
target_include_directories(VulkanEngine PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
|
target_compile_features(VulkanEngine PRIVATE cxx_std_20)
|
|
|
|
target_precompile_headers(VulkanEngine PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include/precomp.h")
|
|
|
|
file(GLOB_RECURSE ShaderSources CONFIGURE_DEPENDS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.vert"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.frag"
|
|
)
|
|
|
|
add_shaders(VulkanEngineShaders ${ShaderSources})
|
|
add_dependencies(VulkanEngine VulkanEngineShaders)
|
|
|
|
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/assets/" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/assets") |