cmake_minimum_required(VERSION 3.20)

project(hdk-imgui-sdl-renderer 
  VERSION 0.0.1
  LANGUAGES CXX
)

option(HDK_IMGUI_SDL_RENDERER_TESTS "Build hdk-imgui-sdl-renderer tests" ${HDK_TESTS})
option(HDK_IMGUI_SDL_RENDERER_EXAMPLES "Build hdk-imgui-sdl-renderer examples" ${HDK_EXAMPLES})

if(HDK_IMGUI_SDL_RENDERER_EXAMPLES)
  add_subdirectory(examples)
endif()

if(HDK_IMGUI_SDL_RENDERER_TESTS)
  add_subdirectory(tests)
endif()

find_package(SDL3 REQUIRED)

include(FetchContent)
FetchContent_Declare(imgui
  GIT_REPOSITORY https://github.com/ocornut/imgui
  GIT_TAG docking
)
FetchContent_MakeAvailable(imgui)

set(HDK_IMGUI_SDL_RENDERER_SOURCES
  ${imgui_SOURCE_DIR}/imgui.cpp
  ${imgui_SOURCE_DIR}/imgui_demo.cpp
  ${imgui_SOURCE_DIR}/imgui_draw.cpp
  ${imgui_SOURCE_DIR}/imgui_tables.cpp
  ${imgui_SOURCE_DIR}/imgui_widgets.cpp
  ${imgui_SOURCE_DIR}/backends/imgui_impl_sdl3.cpp
  ${imgui_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.cpp
)

add_library(hdk-is3r STATIC ${HDK_IMGUI_SDL_RENDERER_SOURCES})
target_link_libraries(hdk-is3r PUBLIC hdk-sdl SDL3::SDL3)
target_include_directories(hdk-is3r PUBLIC
  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  $<BUILD_INTERFACE:${imgui_SOURCE_DIR}>
  $<BUILD_INTERFACE:${imgui_SOURCE_DIR}/backends>
  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)

target_compile_features(hdk-is3r PUBLIC cxx_std_17)