1
0
mirror of synced 2025-02-02 20:37:25 +01:00
jujube/include/imgui-sfml/cmake/FindImGui.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()