59 lines
1.4 KiB
CMake
59 lines
1.4 KiB
CMake
# FindImGui.cmake
|
|
#
|
|
# Finds ImGui library
|
|
#
|
|
# This will define the following variables
|
|
# IMGUI_FOUND
|
|
# IMGUI_INCLUDE_DIRS
|
|
# IMGUI_SOURCES
|
|
# IMGUI_DEMO_SOURCES
|
|
# IMGUI_VERSION
|
|
|
|
list(APPEND IMGUI_SEARCH_PATH
|
|
${IMGUI_DIR}
|
|
)
|
|
|
|
find_path(IMGUI_INCLUDE_DIR
|
|
NAMES imgui.h
|
|
PATHS ${IMGUI_SEARCH_PATH}
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
if(NOT IMGUI_INCLUDE_DIR)
|
|
message(FATAL_ERROR "IMGUI imgui.cpp not found. Set IMGUI_DIR to imgui's top-level path (containing \"imgui.cpp\" and \"imgui.h\" files).\n")
|
|
endif()
|
|
|
|
set(IMGUI_SOURCES
|
|
${IMGUI_INCLUDE_DIR}/imgui.cpp
|
|
${IMGUI_INCLUDE_DIR}/imgui_draw.cpp
|
|
${IMGUI_INCLUDE_DIR}/imgui_widgets.cpp
|
|
${IMGUI_INCLUDE_DIR}/misc/cpp/imgui_stdlib.cpp
|
|
)
|
|
|
|
set(IMGUI_DEMO_SOURCES
|
|
${IMGUI_INCLUDE_DIR}/imgui_demo.cpp
|
|
)
|
|
|
|
# Extract version from header
|
|
file(
|
|
STRINGS
|
|
${IMGUI_INCLUDE_DIR}/imgui.h
|
|
IMGUI_VERSION
|
|
REGEX "#define IMGUI_VERSION "
|
|
)
|
|
|
|
if(NOT IMGUI_VERSION)
|
|
message(SEND_ERROR "Can't find version number in ${IMGUI_INCLUDE_DIR}/imgui.h.")
|
|
endif()
|
|
# Transform '#define IMGUI_VERSION "X.Y"' into 'X.Y'
|
|
string(REGEX REPLACE ".*\"(.*)\".*" "\\1" IMGUI_VERSION "${IMGUI_VERSION}")
|
|
|
|
# Check required version
|
|
if(${IMGUI_VERSION} VERSION_LESS ${ImGui_FIND_VERSION})
|
|
set(IMGUI_FOUND FALSE)
|
|
message(FATAL_ERROR "ImGui at with at least v${ImGui_FIND_VERSION} was requested, but only v${IMGUI_VERSION} was found")
|
|
else()
|
|
set(IMGUI_FOUND TRUE)
|
|
message(STATUS "Found ImGui v${IMGUI_VERSION} in ${IMGUI_INCLUDE_DIR}")
|
|
endif()
|