File: use-system-imgui.diff

package info (click to toggle)
ogre-1.12 1.12.10%2Bdfsg2-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 38,248 kB
  • sloc: cpp: 296,806; ansic: 46,900; lex: 3,682; yacc: 1,589; python: 1,297; makefile: 76; sh: 5
file content (100 lines) | stat: -rw-r--r-- 4,130 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Description: Use packaged imgui instead of downloading and compiling it
Author: Simon Schmeisser <s.schmeisser@gmx.net>
Last-Update: 2020-10-27
--- a/Components/Overlay/CMakeLists.txt
+++ b/Components/Overlay/CMakeLists.txt
@@ -19,21 +19,8 @@
 file(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
 
 if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI)
-  set(IMGUI_DIR "${PROJECT_BINARY_DIR}/imgui-1.79" CACHE PATH "")
-  if(NOT EXISTS ${IMGUI_DIR})
-    message(STATUS "Downloading imgui")
-    file(DOWNLOAD
-        https://github.com/ocornut/imgui/archive/v1.79.tar.gz
-        ${PROJECT_BINARY_DIR}/imgui.tar.gz)
-    execute_process(COMMAND ${CMAKE_COMMAND}
-        -E tar xf imgui.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
-  endif()
-  list(APPEND SOURCE_FILES
-    ${IMGUI_DIR}/imgui.cpp
-    ${IMGUI_DIR}/imgui_draw.cpp
-    ${IMGUI_DIR}/imgui_widgets.cpp
-    ${IMGUI_DIR}/imgui_demo.cpp
-    ${IMGUI_DIR}/misc/freetype/imgui_freetype.cpp)
+    pkg_check_modules(IMGUI REQUIRED IMPORTED_TARGET GLOBAL imgui)
+    pkg_check_modules(STB REQUIRED IMPORTED_TARGET GLOBAL stb)
 else()
     list(REMOVE_ITEM SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/OgreImGuiOverlay.cpp")
 endif()
@@ -52,23 +39,7 @@
     PUBLIC "$<BUILD_INTERFACE:${IMGUI_DIR}>"
     PRIVATE "$<BUILD_INTERFACE:${IMGUI_DIR}/misc/freetype>")
 
-  if(UNIX)
-    set_source_files_properties(${IMGUI_DIR}/misc/freetype/imgui_freetype.cpp PROPERTIES
-      COMPILE_FLAGS "-Wno-missing-declarations")
-
-    set_source_files_properties(${IMGUI_DIR}/imgui_widgets.cpp PROPERTIES
-      COMPILE_FLAGS "-Wno-cast-qual")
-    set_source_files_properties(${IMGUI_DIR}/imgui_draw.cpp PROPERTIES
-      COMPILE_FLAGS "-Wno-cast-qual")
-    set_source_files_properties(${IMGUI_DIR}/imgui.cpp PROPERTIES
-      COMPILE_FLAGS "-Wno-cast-qual")
-  endif()
-
-  configure_file(${OGRE_TEMPLATES_DIR}/imconfig.h ${IMGUI_DIR}/imconfig.h COPYONLY)
-
-  list(APPEND HEADER_FILES
-    ${IMGUI_DIR}/imgui.h
-    ${IMGUI_DIR}/imconfig.h)
+  target_link_libraries(OgreOverlay PRIVATE PkgConfig::IMGUI PkgConfig::STB)
 endif()
 
 generate_export_header(OgreOverlay 
@@ -84,4 +55,4 @@
 )
 install(FILES "${PROJECT_SOURCE_DIR}/Media/packs/profiler.zip"
   DESTINATION "${OGRE_MEDIA_PATH}/packs/"
-)
\ No newline at end of file
+)
--- a/Components/Python/CMakeLists.txt
+++ b/Components/Python/CMakeLists.txt
@@ -18,8 +18,14 @@
 endif()
 
 if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI)
-    include_directories("${IMGUI_DIR}")
-    list(APPEND CMAKE_SWIG_FLAGS -DHAVE_IMGUI -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS)
+    include_directories("${IMGUI_INCLUDE_DIRS}" ${STB_INCLUDE_DIRS})
+    # needs to match flags used in imgui, should be exported by pkgconfig
+    #list(APPEND CMAKE_SWIG_FLAGS -DHAVE_IMGUI -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS)
+    list(APPEND CMAKE_SWIG_FLAGS -DHAVE_IMGUI -DIMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION
+        -DIMGUI_STB_RECT_PACK_FILENAME="<stb/stb_rect_pack.h>"
+        -DIMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION
+        -DIMGUI_STB_TRUETYPE_FILENAME="<stb/stb_truetype.h>"
+    )
 endif()
 
 macro(ogre_python_module target)
@@ -55,7 +61,7 @@
 if(OGRE_BUILD_COMPONENT_OVERLAY)
     set_source_files_properties(../Overlay/include/OgreOverlay.i PROPERTIES CPLUSPLUS ON)
     swig_add_module(Overlay python ../Overlay/include/OgreOverlay.i)
-    swig_link_libraries(Overlay OgreOverlay ${PYTHON_LIBRARIES})
+    swig_link_libraries(Overlay OgreOverlay ${PYTHON_LIBRARIES}  PkgConfig::IMGUI PkgConfig::STB)
     ogre_python_module(Overlay)
 endif()
 
--- a/Components/Bites/CMakeLists.txt
+++ b/Components/Bites/CMakeLists.txt
@@ -132,7 +132,7 @@
 # setup target
 add_library(OgreBites ${OGRE_COMP_LIB_TYPE} ${HEADER_FILES} ${SOURCES})
 set_target_properties(OgreBites PROPERTIES VERSION ${OGRE_SOVERSION} SOVERSION ${OGRE_SOVERSION})
-target_link_libraries(OgreBites PUBLIC OgreMain OgreOverlay PRIVATE ${DEPENDENCIES})
+target_link_libraries(OgreBites PUBLIC OgreMain OgreOverlay PRIVATE ${DEPENDENCIES} PkgConfig::IMGUI PkgConfig::STB)
 if (OGRE_BUILD_COMPONENT_RTSHADERSYSTEM)
   target_link_libraries(OgreBites PUBLIC OgreRTShaderSystem)
 endif ()