From b18692657a32b8b5565b3058818588b01b1081e4 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Fri, 25 Nov 2022 00:41:20 -0600 Subject: [PATCH] Adding Qt ImGui backend --- .gitmodules | 3 +++ external/imgui-backend-qt | 1 + external/imgui.cmake | 19 +++++++++++++++++-- scwx-qt/scwx-qt.cmake | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) create mode 160000 external/imgui-backend-qt diff --git a/.gitmodules b/.gitmodules index debb3932..da689926 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [submodule "external/imgui"] path = external/imgui url = https://github.com/ocornut/imgui.git +[submodule "external/imgui-backend-qt"] + path = external/imgui-backend-qt + url = ../imgui-backend-qt diff --git a/external/imgui-backend-qt b/external/imgui-backend-qt new file mode 160000 index 00000000..69447758 --- /dev/null +++ b/external/imgui-backend-qt @@ -0,0 +1 @@ +Subproject commit 6944775887e61d4d8185568e0205af5b3b483801 diff --git a/external/imgui.cmake b/external/imgui.cmake index 8f6d4d82..55b2cd00 100644 --- a/external/imgui.cmake +++ b/external/imgui.cmake @@ -1,6 +1,15 @@ cmake_minimum_required(VERSION 3.20) set(PROJECT_NAME scwx-imgui) +find_package(QT NAMES Qt6 + COMPONENTS Gui + Widgets + REQUIRED) +find_package(Qt${QT_VERSION_MAJOR} + COMPONENTS Gui + Widgets + REQUIRED) + set(IMGUI_SOURCES imgui/imconfig.h imgui/imgui.cpp imgui/imgui.h @@ -13,12 +22,18 @@ set(IMGUI_SOURCES imgui/imconfig.h imgui/imstb_textedit.h imgui/imstb_truetype.h imgui/backends/imgui_impl_opengl3.cpp - imgui/backends/imgui_impl_opengl3.h) + imgui/backends/imgui_impl_opengl3.h + imgui-backend-qt/backends/imgui_impl_qt.cpp + imgui-backend-qt/backends/imgui_impl_qt.hpp) add_library(imgui STATIC ${IMGUI_SOURCES}) target_include_directories(imgui PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/imgui) -set(IMGUI_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/imgui PARENT_SCOPE) +target_link_libraries(imgui PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) + +set(IMGUI_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/imgui + ${CMAKE_CURRENT_SOURCE_DIR}/imgui-backend-qt + PARENT_SCOPE) set_target_properties(imgui PROPERTIES FOLDER imgui) diff --git a/scwx-qt/scwx-qt.cmake b/scwx-qt/scwx-qt.cmake index b4163326..430af964 100644 --- a/scwx-qt/scwx-qt.cmake +++ b/scwx-qt/scwx-qt.cmake @@ -293,7 +293,7 @@ endif() target_include_directories(scwx-qt PUBLIC ${scwx-qt_SOURCE_DIR}/source ${FTGL_INCLUDE_DIR} - ${IMGUI_INCLUDE_DIR} + ${IMGUI_INCLUDE_DIRS} ${MBGL_INCLUDE_DIR} ${STB_INCLUDE_DIR})