48 lines
1.3 KiB
CMake
48 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.22)
|
|
project(VulkanEngine)
|
|
|
|
find_package(Vulkan REQUIRED)
|
|
|
|
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(
|
|
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)
|
|
|
|
file(GLOB_RECURSE VulkanEngineSources CONFIGURE_DEPENDS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/include/*.h"
|
|
"${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_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") |