set(IMGUI_SOURCES imgui.h imgui.cpp imconfig.h imgui_internal.h imgui_demo.cpp imgui_draw.cpp imgui_tables.cpp imgui_widgets.cpp imstb_rectpack.h imstb_textedit.h imstb_truetype.h # Since we only use GLFW to manage windows, application can't be built without GLFW backend/imgui_impl_glfw.h backend/imgui_impl_glfw.cpp ) option(IMGUI_INCLUDE_OPENGL2_BACKEND ON) if(IMGUI_INCLUDE_OPENGL2_BACKEND) message("ImGui: - building with OpenGL2 backend") list(APPEND IMGUI_SOURCES backend/imgui_impl_opengl2.h backend/imgui_impl_opengl2.cpp ) endif() option(IMGUI_INCLUDE_OPENGL3_BACKEND ON) if(IMGUI_INCLUDE_OPENGL3_BACKEND) message("ImGui: - building with OpenGL3 backend") list(APPEND IMGUI_SOURCES backend/imgui_impl_opengl3.h backend/imgui_impl_opengl3.cpp ) endif() option(IMGUI_INCLUDE_VULKAN_BACKEND ON) if(IMGUI_INCLUDE_VULKAN_BACKEND) message("ImGui: - building with Vulkan backend") list(APPEND IMGUI_SOURCES backend/imgui_impl_vulkan.h backend/imgui_impl_vulkan.cpp ) endif() if(WIN32) option(IMGUI_INCLUDE_DX11_BACKEND ON) if(IMGUI_INCLUDE_DX11_BACKEND) message("ImGui: - building with DirectX11 backend") list(APPEND IMGUI_SOURCES backend/imgui_impl_dx11.h backend/imgui_impl_dx11.cpp ) endif() option(IMGUI_INCLUDE_DX12_BACKEND ON) if(IMGUI_INCLUDE_DX12_BACKEND) message("ImGui: - building with DirectX12 backend") list(APPEND IMGUI_SOURCES backend/imgui_impl_dx12.h backend/imgui_impl_dx12.cpp ) endif() elseif(APPLE) option(IMGUI_INCLUDE_METAL_BACKEND ON) if(IMGUI_INCLUDE_METAL_BACKEND) message("ImGui: - building with Metal backend") list(APPEND IMGUI_SOURCES backend/imgui_impl_metal.h backend/imgui_impl_metal.mm ) endif() endif() add_library(imgui ${IMGUI_SOURCES}) target_compile_definitions(imgui PRIVATE IMGUI_IMPL_OPENGL_LOADER_GLAD=1 ) target_include_directories(imgui PRIVATE ${CMAKE_SOURCE_DIR}/3rdparty/imgui )