Init Repo
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# FindImgui.cmake
|
||||
# Finds ImGui library and sets up compilation
|
||||
#
|
||||
# This module defines:
|
||||
# Imgui_FOUND - System has ImGui
|
||||
# Imgui_INCLUDE_DIRS - ImGui include directories
|
||||
# Imgui_SOURCES - ImGui source files to compile
|
||||
# Imgui::Imgui - Imported target for ImGui
|
||||
|
||||
# Find ImGui directory
|
||||
find_path(Imgui_DIR
|
||||
NAMES imgui.h
|
||||
PATHS
|
||||
${IMGUI_DIR}
|
||||
${CMAKE_SOURCE_DIR}/third_party/imgui-1.92.7
|
||||
${CMAKE_SOURCE_DIR}/third_party/imgui
|
||||
DOC "ImGui root directory"
|
||||
)
|
||||
|
||||
if(Imgui_DIR)
|
||||
set(Imgui_INCLUDE_DIRS
|
||||
${Imgui_DIR}
|
||||
${Imgui_DIR}/backends
|
||||
)
|
||||
|
||||
# Core ImGui source files
|
||||
set(Imgui_SOURCES
|
||||
${Imgui_DIR}/imgui.cpp
|
||||
${Imgui_DIR}/imgui_draw.cpp
|
||||
${Imgui_DIR}/imgui_tables.cpp
|
||||
${Imgui_DIR}/imgui_widgets.cpp
|
||||
${Imgui_DIR}/imgui_demo.cpp
|
||||
)
|
||||
|
||||
# Backend source files for Win32 + OpenGL3
|
||||
list(APPEND Imgui_SOURCES
|
||||
${Imgui_DIR}/backends/imgui_impl_win32.cpp
|
||||
${Imgui_DIR}/backends/imgui_impl_opengl3.cpp
|
||||
)
|
||||
|
||||
set(Imgui_FOUND TRUE)
|
||||
endif()
|
||||
|
||||
# Handle standard find_package arguments
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Imgui
|
||||
REQUIRED_VARS
|
||||
Imgui_DIR
|
||||
Imgui_INCLUDE_DIRS
|
||||
Imgui_SOURCES
|
||||
)
|
||||
|
||||
if(Imgui_FOUND)
|
||||
# Create imported target
|
||||
if(NOT TARGET Imgui::Imgui)
|
||||
# Create the actual library target first
|
||||
add_library(imgui_lib STATIC ${Imgui_SOURCES})
|
||||
target_include_directories(imgui_lib PUBLIC ${Imgui_INCLUDE_DIRS})
|
||||
|
||||
# Link against Windows libraries for Win32 backend and OpenGL
|
||||
target_link_libraries(imgui_lib PUBLIC
|
||||
opengl32
|
||||
gdi32
|
||||
dwmapi
|
||||
imm32
|
||||
)
|
||||
|
||||
# Enable docking support
|
||||
# target_compile_definitions(imgui_lib PUBLIC IMGUI_HAS_DOCK)
|
||||
|
||||
# Set C++ standard
|
||||
target_compile_features(imgui_lib PUBLIC cxx_std_17)
|
||||
|
||||
# Create an alias with the :: namespace
|
||||
add_library(Imgui::Imgui ALIAS imgui_lib)
|
||||
endif()
|
||||
|
||||
message(STATUS "Found ImGui: ${Imgui_DIR}")
|
||||
endif()
|
||||
|
||||
mark_as_advanced(
|
||||
Imgui_DIR
|
||||
)
|
||||
Reference in New Issue
Block a user