cmake_minimum_required(VERSION 4.3)
project(VulkanTutorial)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

file(GLOB SOURCE_CODE ./src/*.cpp)
add_executable(${PROJECT_NAME}
        ${SOURCE_CODE}
)

# 1. 查找 Vulkan
find_package(Vulkan REQUIRED)
if(NOT Vulkan_FOUND)
    message(FATAL_ERROR "Vulkan not found!")
endif()

# 设置 GLFW 不构建示例和文档，加快编译
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
add_subdirectory(Libraries/glfw)            # GLFW

add_subdirectory(Libraries/glm)             # GLM

# 链接依赖
target_link_libraries(${PROJECT_NAME}
        PRIVATE
        glfw          # glfw 的 target 名称（由 add_subdirectory 提供）
        Vulkan::Vulkan  # 来自 find_package(Vulkan)
)
