
SET(IMGUI_SOURCES
	imconfig.h
	imgui_demo.cpp
	imgui_draw.cpp
	imgui_internal.h
	imgui_tables.cpp
	imgui_widgets.cpp
	imgui.cpp
	imgui.h
	imstb_rectpack.h
	imstb_textedit.h
	imstb_truetype.h
    backends/imgui_impl_opengl3.h
    backends/imgui_impl_opengl3.cpp
    backends/imgui_impl_sdl.h
    backends/imgui_impl_sdl.cpp
    extensions/imgui_sugar.hpp
    extensions/ImGuizmo.cpp
    extensions/ImGuizmo.h
)

if (FSO_BUILD_WITH_VULKAN)
    list(APPEND IMGUI_SOURCES
        backends/imgui_impl_vulkan.h
        backends/imgui_impl_vulkan.cpp
    )
endif()

ADD_LIBRARY(imgui STATIC ${IMGUI_SOURCES})

target_include_directories(imgui SYSTEM PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")

# Disable warnings if building from source
suppress_warnings(imgui)

set_target_properties(imgui PROPERTIES FOLDER "3rdparty")
TARGET_LINK_LIBRARIES(imgui PUBLIC sdl2)
target_link_libraries(imgui PUBLIC compiler)

if (FSO_BUILD_WITH_VULKAN)
	find_package(Vulkan REQUIRED)
    target_compile_definitions(imgui INTERFACE VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1 VK_NO_PROTOTYPES)
	target_link_libraries(imgui PRIVATE Vulkan::Vulkan)
endif()
