# Vendored Dear ImGui (core + Win32/DX11 backends). Third-party code: no project warning flags.
#   drakan::imgui        core library; public include dir also exposes imstb_*.h (the UI font atlas reuses stb_truetype)
#   drakan::imgui_dx11   Win32 + D3D11 platform/renderer backends (Windows only)
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
    cmake_minimum_required(VERSION 3.21)
    project(drakan_imgui LANGUAGES CXX)
    set(CMAKE_CXX_STANDARD 20)
endif()

add_library(drakan_imgui STATIC imgui.cpp imgui_draw.cpp imgui_tables.cpp imgui_widgets.cpp)
add_library(drakan::imgui ALIAS drakan_imgui)
target_include_directories(drakan_imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
target_compile_definitions(drakan_imgui PUBLIC IMGUI_DISABLE_DEBUG_TOOLS IMGUI_DISABLE_DEMO_WINDOWS)
if(MSVC)
    target_compile_options(drakan_imgui PRIVATE /utf-8 /W3 /permissive-)
    target_compile_definitions(drakan_imgui PRIVATE _CRT_SECURE_NO_WARNINGS)
endif()

if(WIN32)
    add_library(drakan_imgui_dx11 STATIC backends/imgui_impl_win32.cpp backends/imgui_impl_dx11.cpp)
    add_library(drakan::imgui_dx11 ALIAS drakan_imgui_dx11)
    target_link_libraries(drakan_imgui_dx11 PUBLIC drakan_imgui)
    if(MSVC)
        target_compile_options(drakan_imgui_dx11 PRIVATE /utf-8 /W3 /permissive-)
        target_compile_definitions(drakan_imgui_dx11 PRIVATE _CRT_SECURE_NO_WARNINGS)
    endif()
endif()
