Skip to content

Commit

Permalink
Add imgui module (#210)
Browse files Browse the repository at this point in the history
  • Loading branch information
Meakk authored Nov 28, 2024
1 parent 7294428 commit da71744
Show file tree
Hide file tree
Showing 24 changed files with 160 additions and 33 deletions.
1 change: 1 addition & 0 deletions .github/actions/f3d-superbuild/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ runs:
-DBUILD_SHARED_LIBS_draco=OFF
-DBUILD_SHARED_LIBS_openexr=OFF
-DBUILD_SHARED_LIBS_imath=OFF
-DBUILD_SHARED_LIBS_imgui=OFF
-DBUILD_SHARED_LIBS_occt=OFF
-DBUILD_SHARED_LIBS_openusd=ON
-DBUILD_SHARED_LIBS_openvdb=OFF
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/wheels/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ runs:
shell: bash
run: |
echo "CMAKE_PREFIX_PATH=../fsbb/install" >> $GITHUB_ENV
echo "SKBUILD_CMAKE_ARGS=-DF3D_DEPENDENCIES_DIR=${{ env.ESCAPED_WS }}/fsbb/install/bin;-DF3D_PLUGIN_BUILD_ALEMBIC=ON;-DF3D_PLUGIN_BUILD_ASSIMP=ON;-DF3D_PLUGIN_BUILD_DRACO=ON;-DF3D_PLUGIN_BUILD_OCCT=ON;-DF3D_PLUGIN_OCCT_COLORING_SUPPORT=ON;-DF3D_MODULE_EXR=ON;-DF3D_WINDOWS_GUI=OFF;-DF3D_MACOS_BUNDLE=OFF" >> $GITHUB_ENV
echo "SKBUILD_CMAKE_ARGS=-DF3D_DEPENDENCIES_DIR=${{ env.ESCAPED_WS }}/fsbb/install/bin;-DF3D_PLUGIN_BUILD_ALEMBIC=ON;-DF3D_PLUGIN_BUILD_ASSIMP=ON;-DF3D_PLUGIN_BUILD_DRACO=ON;-DF3D_PLUGIN_BUILD_OCCT=ON;-DF3D_PLUGIN_OCCT_COLORING_SUPPORT=ON;-DF3D_MODULE_EXR=ON;-DF3D_MODULE_UI=ON;-DF3D_WINDOWS_GUI=OFF;-DF3D_MACOS_BUNDLE=OFF" >> $GITHUB_ENV
- name: Build superbuild and wheels
if: |
Expand Down
1 change: 1 addition & 0 deletions .github/actions/wheels/build_f3d_superbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ cmake -S ./source -B ./fsbb \
-DENABLE_alembic=ON \
-DENABLE_assimp=ON \
-DENABLE_draco=ON \
-DENABLE_imgui=ON \
-DENABLE_occt=ON \
-DENABLE_openexr=ON \
-DENABLE_openusd=OFF \
Expand Down
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ function (superbuild_find_projects var)
f3d
hdf5
imath
imgui
ispc
lz4
netcdf
Expand Down Expand Up @@ -136,6 +137,7 @@ set(_superbuild_default_alembic ON)
set(_superbuild_default_assimp ON)
set(_superbuild_default_draco ON)
set(_superbuild_default_exodus ON)
set(_superbuild_default_imgui ON)
set(_superbuild_default_occt ON)
set(_superbuild_default_openvdb ON)
set(_superbuild_default_openexr ON)
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,9 @@ This repository also generate a nightly release of F3D.
- `ENABLE_alembic`: ON by defaut, build and package alembic and the associated F3D plugin
- `ENABLE_assimp`: ON by defaut, build and package assimp and the associated F3D plugin
- `ENABLE_draco`: ON by defaut, build and package draco and the associated F3D plugin
- `ENABLE_imgui`: ON by default, build and package imgui and the associated F3D module
- `ENABLE_occt`: ON by defaut, build and package occt and the associated F3D plugin
- `ENABLE_openexr`: ON by default, build and package OpenEXR and the associated VTK module
- `ENABLE_openexr`: ON by default, build and package OpenEXR and the associated F3D module
- `ENABLE_ospray`: ON by defaut, build and package ospray and the associated VTK module
- `ENABLE_tbb`: ON by default, build and package TBB to enable multi-threading
- `ENABLE_pybind11`: OFF by defaut, build pybind11 and F3D python bindings, not packageable
Expand Down
3 changes: 2 additions & 1 deletion projects/f3d.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@ superbuild_add_project(f3d
LICENSE.md
doc/THIRD_PARTY_LICENSES.md
DEPENDS vtk cxx17
DEPENDS_OPTIONAL pybind11 alembic assimp draco occt openexr openusd openvdb
DEPENDS_OPTIONAL pybind11 alembic assimp draco imgui occt openexr openusd openvdb
CMAKE_ARGS
-DCMAKE_INSTALL_NAME_DIR:PATH=<INSTALL_DIR>/lib
-DF3D_LINUX_GENERATE_MAN:BOOL=${f3d_build_for_linux}
-DF3D_LINUX_INSTALL_DEFAULT_CONFIGURATION_FILE_IN_PREFIX:BOOL=${f3d_build_for_linux}
-DF3D_MACOS_BUNDLE:BOOL=${f3d_build_for_macos}
-DF3D_MODULE_EXR:BOOL=${openexr_enabled}
-DF3D_MODULE_RAYTRACING:BOOL=${ospray_enabled}
-DF3D_MODULE_UI:BOOL=${imgui_enabled}
-DF3D_PLUGINS_STATIC_BUILD:BOOL=ON
-DF3D_PLUGIN_BUILD_ALEMBIC:BOOL=${alembic_enabled}
-DF3D_PLUGIN_BUILD_ASSIMP:BOOL=${assimp_enabled}
Expand Down
7 changes: 7 additions & 0 deletions projects/imgui.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
superbuild_add_project(imgui
BUILD_SHARED_LIBS_INDEPENDENT
LICENSE_FILES
LICENSE.txt
)

superbuild_apply_patch(imgui cmake-build "Add CMake build system")
109 changes: 109 additions & 0 deletions projects/patches/imgui-cmake-build.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
commit cab05d14c0ef97e286971f388df2f656642e6835
Author: Michael Migliore <[email protected]>
Date: Thu Nov 28 09:20:46 2024 +0100

Add CMake build system

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 00000000..dbb79cd0
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,71 @@
+cmake_minimum_required(VERSION 3.16)
+project(imgui CXX)
+
+add_library(${PROJECT_NAME} "")
+
+include(GenerateExportHeader)
+generate_export_header(${PROJECT_NAME}
+ EXPORT_FILE_NAME imgui_export.h
+ EXPORT_MACRO_NAME IMGUI_API)
+
+target_include_directories(
+ ${PROJECT_NAME}
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
+ $<INSTALL_INTERFACE:include>
+)
+
+target_sources(
+ ${PROJECT_NAME}
+ PRIVATE
+ ${CMAKE_CURRENT_SOURCE_DIR}/imgui.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/imgui_draw.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/imgui_tables.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/imgui_widgets.cpp
+)
+
+target_compile_definitions(
+ ${PROJECT_NAME}
+ PRIVATE
+ IMGUI_DISABLE_DEMO_WINDOWS
+ IMGUI_DISABLE_DEBUG_TOOLS
+)
+
+set_target_properties(
+ ${PROJECT_NAME}
+ PROPERTIES
+ CXX_STANDARD 11
+ POSITION_INDEPENDENT_CODE ON
+)
+
+install(
+ TARGETS ${PROJECT_NAME}
+ EXPORT ${PROJECT_NAME}_target
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin
+)
+
+install(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/imgui_export.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/imgui.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/imconfig.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/imgui_internal.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/imstb_textedit.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/imstb_rectpack.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/imstb_truetype.h
+ DESTINATION include
+)
+
+include(CMakePackageConfigHelpers)
+configure_package_config_file(imgui-config.cmake.in imgui-config.cmake INSTALL_DESTINATION share/imgui)
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/imgui-config.cmake DESTINATION share/imgui)
+
+install(
+ EXPORT ${PROJECT_NAME}_target
+ NAMESPACE ${PROJECT_NAME}::
+ FILE ${PROJECT_NAME}-targets.cmake
+ DESTINATION share/${PROJECT_NAME}
+)
diff --git a/imgui-config.cmake.in b/imgui-config.cmake.in
new file mode 100644
index 00000000..b9e55800
--- /dev/null
+++ b/imgui-config.cmake.in
@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0012 NEW)
+
+@PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+
+include("${CMAKE_CURRENT_LIST_DIR}/imgui-targets.cmake")
diff --git a/imgui.h b/imgui.h
index d6286592..c91cb811 100644
--- a/imgui.h
+++ b/imgui.h
@@ -65,6 +65,8 @@ Index of this file:

#ifndef IMGUI_DISABLE

+#include "imgui_export.h"
+
//-----------------------------------------------------------------------------
// [SECTION] Header mess
//-----------------------------------------------------------------------------
4 changes: 2 additions & 2 deletions testing/baselines/TestAlembic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestAssimp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestDraco.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestOCCT.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestOCCTColoring.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestOSPRay.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestRenderingGLX.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestRenderingHeadlessEGL.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestRenderingHeadlessOSMESA.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestRenderingWGL.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestSimple.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestSimpleColor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestSplat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestUSD.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions testing/baselines/TestVDB.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions versions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ superbuild_set_revision(openvdb
DOWNLOAD_NAME openvdb-v11.0.0.tar.gz
URL_MD5 025f4fc4db58419341a4991f1a16174a)

superbuild_set_revision(imgui
URL "https://github.com/ocornut/imgui/archive/refs/tags/v1.91.5.tar.gz"
DOWNLOAD_NAME imgui-v1.91.5.tar.gz
URL_MD5 264b2c35eaa1ab1595eb9afe080b4e1a)

superbuild_set_selectable_source(vtk
SELECT 9.3.1 DEFAULT
URL "https://www.vtk.org/files/release/9.3/VTK-9.3.1.tar.gz"
Expand Down

0 comments on commit da71744

Please sign in to comment.