165 lines
5.5 KiB
CMake
165 lines
5.5 KiB
CMake
cmake_minimum_required(VERSION 3.5)
|
|
|
|
project(imgui-docking)
|
|
|
|
|
|
# Required Source Files
|
|
set(IMGUI_SOURCES imgui.cpp imgui_demo.cpp imgui_draw.cpp imgui_tables.cpp imgui_widgets.cpp)
|
|
set(IMGUI_HEADERS imconfig.h imgui.h imgui_internal.h imstb_rectpack.h imstb_textedit.h imstb_truetype.h)
|
|
|
|
set(IMGUI_DEPENDENCIES)
|
|
|
|
# Backends
|
|
|
|
# Allegro ==============================================================================================================
|
|
|
|
if(IMGUI_BACKEND_ALLEGRO_5)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_allegro5.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_allegro5.h)
|
|
endif()
|
|
|
|
|
|
# Android ==============================================================================================================
|
|
|
|
if(IMGUI_BACKEND_ANDROID)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_android.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_android.h)
|
|
endif()
|
|
|
|
|
|
# DirectX ==============================================================================================================
|
|
|
|
if(IMGUI_BACKEND_DIRECTX_9)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_dx9.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_dx9.h)
|
|
endif()
|
|
|
|
if(IMGUI_BACKEND_DIRECTX_10)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_dx10.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_dx10.h)
|
|
endif()
|
|
|
|
if(IMGUI_BACKEND_DIRECTX_11)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_dx11.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_dx11.h)
|
|
endif()
|
|
|
|
if(IMGUI_BACKEND_DIRECTX_12)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_dx12.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_dx12.h)
|
|
endif()
|
|
|
|
|
|
# GLFW =================================================================================================================
|
|
|
|
if(IMGUI_BACKEND_GLFW)
|
|
find_package(glfw3 REQUIRED)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_glfw.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_glfw.h)
|
|
list(APPEND IMGUI_DEPENDENCIES glfw)
|
|
endif()
|
|
|
|
|
|
# GLUT =================================================================================================================
|
|
|
|
if(IMGUI_BACKEND_GLUT)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_glut.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_glut.h)
|
|
endif()
|
|
|
|
|
|
# METAL ================================================================================================================
|
|
|
|
if(IMGUI_BACKEND_METAL)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_metal.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_metal.h)
|
|
endif()
|
|
|
|
|
|
# OPENGL ===============================================================================================================
|
|
|
|
if(IMGUI_BACKEND_OPENGL)
|
|
find_package(OpenGL REQUIRED COMPONENTS OpenGL)
|
|
list(APPEND IMGUI_DEPENDENCIES OpenGL::GL)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_opengl3.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_opengl3.h backends/imgui_impl_opengl3_loader.h)
|
|
endif()
|
|
|
|
if(IMGUI_BACKEND_OPENGL_LEGACY)
|
|
find_package(OpenGL REQUIRED COMPONENTS OpenGL)
|
|
list(APPEND IMGUI_DEPENDENCIES OpenGL::GL)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_opengl2.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_opengl2.h)
|
|
endif()
|
|
|
|
|
|
# SDL ==================================================================================================================
|
|
|
|
if(IMGUI_BACKEND_SDL2)
|
|
find_package(SDL2 REQUIRED)
|
|
list(APPEND IMGUI_DEPENDENCIES ${SDL2_LIBRARIES})
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_sdl2.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_sdl2.h)
|
|
|
|
if(IMGUI_BACKEND_SDL_RENDERER)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_sdlrenderer2.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_sdlrenderer2.h)
|
|
endif ()
|
|
endif()
|
|
|
|
if(IMGUI_BACKEND_SDL3)
|
|
find_package(SDL3 REQUIRED)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_sdl3.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_sdl3.h)
|
|
list(APPEND IMGUI_DEPENDENCIES SDL3)
|
|
|
|
if(IMGUI_BACKEND_SDL_RENDERER)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_sdlrenderer3.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_sdlrenderer3.h)
|
|
endif ()
|
|
endif()
|
|
|
|
|
|
# VULKAN ===============================================================================================================
|
|
|
|
if(IMGUI_BACKEND_VULKAN)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_vulkan.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_vulkan.h)
|
|
endif()
|
|
|
|
|
|
# WGPU =================================================================================================================
|
|
|
|
if(IMGUI_BACKEND_WGPU)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_wgpu.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_wgpu.h)
|
|
endif()
|
|
|
|
|
|
# WIN32 ================================================================================================================
|
|
|
|
if(IMGUI_BACKEND_WIN32)
|
|
list(APPEND IMGUI_SOURCES backends/imgui_impl_win32.cpp)
|
|
list(APPEND IMGUI_HEADERS backends/imgui_impl_win32.h)
|
|
endif()
|
|
|
|
|
|
# Misc
|
|
|
|
if(IMGUI_STDLIB)
|
|
list(APPEND IMGUI_SOURCES misc/cpp/imgui_stdlib.cpp)
|
|
list(APPEND IMGUI_HEADERS misc/cpp/imgui_stdlib.h)
|
|
endif()
|
|
|
|
if(IMGUI_FREETYPE)
|
|
find_package(Freetype REQUIRED)
|
|
list(APPEND IMGUI_DEPENDENCIES Freetype::Freetype)
|
|
list(APPEND IMGUI_SOURCES misc/freetype/imgui_freetype.cpp)
|
|
list(APPEND IMGUI_HEADERS misc/freetype/imgui_freetype.h)
|
|
endif()
|
|
|
|
# Library
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
add_library(imgui-docking STATIC ${IMGUI_HEADERS} ${IMGUI_SOURCES})
|
|
target_link_libraries(imgui-docking PRIVATE ${IMGUI_DEPENDENCIES}) |