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 ()
|