Skip to content

Commit 54dc944

Browse files
author
Manuel Stoiber
committed
feat(ICG): initial commit
1 parent 3dbb9d4 commit 54dc944

102 files changed

Lines changed: 28826 additions & 2 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ICG/CMakeLists.txt

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
3+
# =============================================================================
4+
project(ICG)
5+
6+
7+
# Options
8+
# =============================================================================
9+
option(USE_AZURE_KINECT "Use Azure Kinect" ON)
10+
option(USE_REALSENSE "Use RealSense D435" ON)
11+
12+
13+
# Libraries
14+
# =============================================================================
15+
if (WIN32)
16+
set(GLEW_STATIC true)
17+
set(OpenCV_STATIC true)
18+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
19+
endif ()
20+
21+
find_package(Eigen3 3.3.2 REQUIRED)
22+
find_package(OpenGL REQUIRED)
23+
find_package(GLEW REQUIRED)
24+
find_package(glfw3 3.1.2 REQUIRED)
25+
find_package(OpenCV 4.0.0 REQUIRED)
26+
if(USE_AZURE_KINECT)
27+
find_package(K4A 1.3.0 REQUIRED)
28+
endif()
29+
if (USE_REALSENSE)
30+
find_package(realsense2 REQUIRED)
31+
endif ()
32+
33+
find_package(OpenMP REQUIRED)
34+
if (OPENMP_FOUND)
35+
if (WIN32)
36+
set(CMAKE_CXX_FLAGS_RELEASE
37+
"${CMAKE_C_FLAGS_RELEASE} ${OpenMP_C_FLAGS}")
38+
set(CMAKE_CXX_FLAGS_RELEASE
39+
"${CMAKE_CXX_FLAGS_RELEASE} ${OpenMP_CXX_FLAGS}")
40+
set(CMAKE_EXE_LINKER_FLAGS
41+
"${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
42+
else ()
43+
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
44+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
45+
set(CMAKE_EXE_LINKER_FLAGS
46+
"${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
47+
endIf ()
48+
endif ()
49+
50+
51+
# Compiler Settings
52+
# =============================================================================
53+
54+
# Default settings
55+
set(CMAKE_CXX_STANDARD 17)
56+
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
57+
include(CheckCXXCompilerFlag)
58+
check_cxx_compiler_flag(-march HAS_MARCH)
59+
check_cxx_compiler_flag(-mtune HAS_MTUNE)
60+
if (HAS_MARCH)
61+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
62+
endif ()
63+
if (HAS_MTUNE)
64+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=native")
65+
endif ()
66+
67+
# Debug settings
68+
check_cxx_compiler_flag(-ggdb HAS_GGDB)
69+
check_cxx_compiler_flag(-Z7 HAS_Z7)
70+
check_cxx_compiler_flag(-ftrapv HAS_FTRAPV)
71+
check_cxx_compiler_flag(-Od HAS_OD)
72+
if (HAS_GGDB)
73+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb")
74+
elseif (HAS_Z7)
75+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Z7")
76+
endif ()
77+
if (HAS_FTRAPV)
78+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ftrapv")
79+
endif ()
80+
if (HAS_OD)
81+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Od")
82+
endif ()
83+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
84+
85+
# Release settings
86+
check_cxx_compiler_flag(-Ob3 HAS_OB3)
87+
check_cxx_compiler_flag(-O3 HAS_O3)
88+
check_cxx_compiler_flag(-Ob2 HAS_OB2)
89+
check_cxx_compiler_flag(-O2 HAS_O2)
90+
if (HAS_OB3)
91+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ob3")
92+
elseif (HAS_O3)
93+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
94+
elseif (HAS_OB2)
95+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ob2")
96+
elseif (HAS_O2)
97+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
98+
endif ()
99+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG")
100+
101+
# OS settings
102+
if (WIN32)
103+
if(OPENMP_FOUND)
104+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -openmp:experimental")
105+
endif()
106+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -MT")
107+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -MTd")
108+
endif()
109+
110+
111+
# Definitions
112+
# =============================================================================
113+
if (USE_AZURE_KINECT)
114+
add_definitions( -DUSE_AZURE_KINECT=${USE_AZURE_KINECT} )
115+
endif ()
116+
if (USE_REALSENSE)
117+
add_definitions( -DUSE_REALSENSE=${USE_REALSENSE} )
118+
endif ()
119+
120+
121+
# Directories
122+
# =============================================================================
123+
124+
# Include Directories
125+
include_directories("${CMAKE_SOURCE_DIR}/include")
126+
include_directories("${CMAKE_SOURCE_DIR}/third_party")
127+
128+
# Sub Directories
129+
add_subdirectory(src)
130+
add_subdirectory(examples)
131+
add_subdirectory(doc)

ICG/dlr_icg_components.png

545 KB
Loading

ICG/dlr_icg_video_real-world.png

270 KB
Loading

ICG/dlr_icg_video_ycb-video.png

213 KB
Loading

ICG/doc/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
3+
# Check if Doxygen is installed
4+
find_package(Doxygen REQUIRED dot)
5+
6+
# Generate Doxygen documentation
7+
if (DOXYGEN_FOUND)
8+
add_custom_target(doc_doxygen ALL
9+
COMMAND ${DOXYGEN_EXECUTABLE}
10+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
11+
VERBATIM)
12+
else ()
13+
message(WARNING "Doxygen not found")
14+
endif ()

0 commit comments

Comments
 (0)