Skip to content

Commit febf0c5

Browse files
committed
Set up imgui from Conan properly
1 parent 66a7edd commit febf0c5

File tree

8 files changed

+27
-17
lines changed

8 files changed

+27
-17
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ install*
44
cupoch_config.h
55
shader.h
66
imgui.ini
7+
/src/cupoch/visualization/visualizer/imgui/
78
site/*
89
__pycache__
910
.idea/

CMakeLists.txt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -137,17 +137,12 @@ target_compile_options(cupoch_flags INTERFACE
137137
"$<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda>"
138138
"$<$<COMPILE_LANGUAGE:CUDA>:--default-stream=per-thread>"
139139
"$<$<COMPILE_LANGUAGE:CUDA>:--use_fast_math>"
140+
"$<$<BOOL:UNIX>:$<$<COMPILE_LANGUAGE:CUDA>:--compiler-options=-fPIC>>"
140141
"$<$<COMPILE_LANGUAGE:CUDA>:-Xcudafe=--diag_suppress=integer_sign_change>"
141142
"$<$<COMPILE_LANGUAGE:CUDA>:-Xcudafe=--diag_suppress=partial_override>"
142143
"$<$<COMPILE_LANGUAGE:CUDA>:-Xcudafe=--diag_suppress=virtual_function_decl_hidden>"
143144
)
144-
target_link_libraries(cupoch_flags INTERFACE
145-
CUDA::cudart
146-
# CUDA::cublas
147-
# CUDA::cudnn
148-
# CUDA::cufft
149-
# CUDA::curand
150-
)
145+
target_link_libraries(cupoch_flags INTERFACE CUDA::cudart)
151146
if (USE_RMM)
152147
target_compile_definitions(cupoch_flags INTERFACE USE_RMM)
153148
endif ()

conanfile.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from conan import ConanFile
44
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
5+
from conan.tools.files import copy
56

67
# for self.info.clear()
78
required_conan_version = ">=1.50.0"
@@ -54,13 +55,24 @@ def layout(self):
5455
cmake_layout(self)
5556

5657
def generate(self):
58+
imgui_paths = self.dependencies["imgui/1.89.1"].cpp_info.srcdirs
59+
backends_dir = next(path for path in imgui_paths if path.endswith("bindings"))
60+
output_dir = os.path.join(self.source_folder, "src/cupoch/visualization/visualizer/imgui/backends")
61+
for backend_file in [
62+
"imgui_impl_glfw.h",
63+
"imgui_impl_glfw.cpp",
64+
"imgui_impl_opengl3.h",
65+
"imgui_impl_opengl3_loader.h",
66+
"imgui_impl_opengl3.cpp",
67+
]:
68+
copy(self, backend_file, backends_dir, output_dir)
69+
5770
tc = CMakeToolchain(self)
5871
# Do not set CXX, C flags from Conan to avoid adding -stdlib=libstdc++
5972
tc.blocks.remove("cmake_flags_init")
6073
tc.cache_variables["BUILD_TESTING"] = self._with_unit_tests
61-
# tc.preprocessor_definitions["FLANN_USE_CUDA"] = 1
62-
# tc.preprocessor_definitions["SPDLOG_FMT_EXTERNAL"] = 1
6374
tc.generate()
75+
6476
CMakeDeps(self).generate()
6577

6678
def build(self):

src/cupoch/visualization/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ target_link_libraries(cupoch_visualization
3434
cupoch_utility
3535
Eigen3::Eigen
3636
GLEW::GLEW
37-
glfw3
37+
glfw
3838
PRIVATE
3939
cupoch_io
4040
imgui::imgui

src/cupoch/visualization/shader/geometry_renderer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,10 @@ bool GraphRenderer<Dim>::UpdateGeometry() {
114114
return true;
115115
}
116116

117+
namespace cupoch::visualization::glsl {
117118
template class GraphRenderer<2>;
118119
template class GraphRenderer<3>;
120+
} // namespace cupoch::visualization::glsl
119121

120122
bool TriangleMeshRenderer::Render(const RenderOption &option,
121123
const ViewControl &view) {

src/cupoch/visualization/visualizer/visualizer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
#include "cupoch/visualization/visualizer/visualizer.h"
2222

2323
#include <imgui.h>
24-
#include <imgui/backends/imgui_impl_glfw.h>
25-
#include <imgui/backends/imgui_impl_opengl3.h>
24+
#include "imgui/backends/imgui_impl_glfw.h"
25+
#include "imgui/backends/imgui_impl_opengl3.h"
2626

2727
#include "cupoch/geometry/lineset.h"
2828
#include "cupoch/geometry/trianglemesh.h"

src/cupoch/visualization/visualizer/visualizer_renderer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
* IN THE SOFTWARE.
2020
**/
2121
#include <imgui.h>
22-
#include <imgui/backends/imgui_impl_glfw.h>
23-
#include <imgui/backends/imgui_impl_opengl3.h>
22+
#include "imgui/backends/imgui_impl_glfw.h"
23+
#include "imgui/backends/imgui_impl_opengl3.h"
2424

2525
#include "cupoch/geometry/trianglemesh.h"
2626
#include "cupoch/io/class_io/ijson_convertible_io.h"

third_party/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ add_library(flann_cuda_s STATIC ${CU_SOURCES})
1414
add_library(flann::flann_cuda_s ALIAS flann_cuda_s)
1515
target_include_directories(flann_cuda_s PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
1616
target_compile_definitions(flann_cuda_s PUBLIC FLANN_USE_CUDA)
17-
target_link_libraries(flann_cuda_s PRIVATE spdlog::spdlog rmm::rmm)
17+
target_link_libraries(flann_cuda_s PRIVATE cupoch_flags CUDA::cudart spdlog::spdlog rmm::rmm)
1818
list(APPEND 3RDPARTY_LIBRARIES flann_cuda_s)
1919

2020
# liblzf
@@ -43,8 +43,8 @@ add_subdirectory(stdgpu)
4343
set_target_properties(stdgpu PROPERTIES POSITION_INDEPENDENT_CODE ON)
4444
target_include_directories(stdgpu INTERFACE
4545
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/stdgpu/src>
46-
$<INSTALL_INTERFACE:stdgpu/src>
4746
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/stdgpu/src/stdgpu/include>
47+
$<INSTALL_INTERFACE:stdgpu/src>
4848
$<INSTALL_INTERFACE:stdgpu/src/stdgpu/include>)
4949
list(APPEND 3RDPARTY_LIBRARIES stdgpu)
5050

@@ -124,7 +124,7 @@ target_include_directories(sgm PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libSGM/include
124124
target_include_directories(sgm PUBLIC
125125
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libSGM/include>
126126
$<INSTALL_INTERFACE:libSGM/include>)
127-
target_link_libraries(sgm PUBLIC CUDA::cudart)
127+
target_link_libraries(sgm PUBLIC cupoch_flags CUDA::cudart)
128128
list(APPEND 3RDPARTY_LIBRARIES sgm)
129129

130130

0 commit comments

Comments
 (0)