wilhelm_renderer_imgui 0.5.1

Dear ImGui integration for wilhelm_renderer
Documentation
cmake_minimum_required(VERSION 3.16)
project(imgui_wrapper CXX)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# ImGui core sources
set(IMGUI_SOURCES
    imgui/imgui.cpp
    imgui/imgui_demo.cpp
    imgui/imgui_draw.cpp
    imgui/imgui_tables.cpp
    imgui/imgui_widgets.cpp
)

# ImGui backend sources
set(IMGUI_BACKEND_SOURCES
    imgui/backends/imgui_impl_glfw.cpp
    imgui/backends/imgui_impl_opengl3.cpp
)

# Our wrapper
set(WRAPPER_SOURCES
    imgui_wrapper.cpp
)

# Create static library
add_library(imgui_wrapper STATIC
    ${IMGUI_SOURCES}
    ${IMGUI_BACKEND_SOURCES}
    ${WRAPPER_SOURCES}
)

# Include directories
target_include_directories(imgui_wrapper PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/imgui
    ${CMAKE_CURRENT_SOURCE_DIR}/imgui/backends
    ${CMAKE_CURRENT_SOURCE_DIR}/glfw/include
)

# Platform-specific settings
if(UNIX AND NOT APPLE)
    # Linux
    find_package(OpenGL REQUIRED)
    target_link_libraries(imgui_wrapper PRIVATE OpenGL::GL)
elseif(APPLE)
    # macOS
    find_library(COCOA_LIBRARY Cocoa)
    find_library(IOKIT_LIBRARY IOKit)
    find_library(COREVIDEO_LIBRARY CoreVideo)
    find_package(OpenGL REQUIRED)
    target_link_libraries(imgui_wrapper PRIVATE
        OpenGL::GL
        ${COCOA_LIBRARY}
        ${IOKIT_LIBRARY}
        ${COREVIDEO_LIBRARY}
    )
elseif(WIN32)
    # Windows
    target_link_libraries(imgui_wrapper PRIVATE opengl32)
endif()

# Install the library
install(TARGETS imgui_wrapper
    ARCHIVE DESTINATION lib
    LIBRARY DESTINATION lib
)