file(GLOB_RECURSE ENGINE_SOURCES
        src/*.cpp
)

# ImGui（docking 分支，vendored submodule）
set(IMGUI_DIR ${CMAKE_SOURCE_DIR}/Lib/imgui)
set(IMGUI_SOURCES
        ${IMGUI_DIR}/imgui.cpp
        ${IMGUI_DIR}/imgui_draw.cpp
        ${IMGUI_DIR}/imgui_tables.cpp
        ${IMGUI_DIR}/imgui_widgets.cpp
        ${IMGUI_DIR}/imgui_demo.cpp      # ShowDemoWindow 的实现（调试期保留）
        ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp
        ${IMGUI_DIR}/backends/imgui_impl_vulkan.cpp
)

# 编译成静态库
add_library(Engine STATIC ${ENGINE_SOURCES} ${IMGUI_SOURCES})


target_include_directories(Engine PUBLIC
        ${CMAKE_CURRENT_SOURCE_DIR}/include
        ${CMAKE_SOURCE_DIR}/Lib/entt/src
        ${CMAKE_SOURCE_DIR}/Lib/VulkanMemoryAllocator/include
        ${IMGUI_DIR}
        ${IMGUI_DIR}/backends
)

# 链接第三方库
target_link_libraries(Engine PUBLIC
        glfw
        Vulkan::Vulkan
        spdlog::spdlog
        stb
        assimp::assimp
)

target_compile_definitions(Engine PRIVATE VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1)