-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCMakeLists.txt
234 lines (192 loc) · 6.16 KB
/
CMakeLists.txt
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
cmake_minimum_required(VERSION 3.5)
project(ydlidar_os30a VERSION 0.0.0.4)
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
endif()
# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
message("ROS2 version : ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${PROJECT_VERSION_TWEAK}")
configure_file (
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/versionInfo.h.in"
"${CMAKE_CURRENT_SOURCE_DIR}/include/versionInfo.h"
)
set(DEPENDENCIES
rclcpp
rclcpp_components
image_transport
std_msgs
tf2
tf2_ros
sensor_msgs
OpenCV
cv_bridge
)
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rcutils REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_components REQUIRED)
find_package(std_msgs REQUIRED)
find_package(tf2 REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(image_transport REQUIRED)
find_package(cv_bridge REQUIRED)
find_package(OpenCV REQUIRED)
if(OpenCV_FOUND)
message("OpenCV is found.")
set(WITH_OPENCV TRUE)
add_definitions(-DWITH_OPENCV)
message("Found OpenCV: ${OpenCV_VERSION}")
message(STATUS "Defined WITH_OPENCV.")
endif()
###############################################################################
#Add all files in subdirectories of the project in
# a dummy_target so qtcreator have access to all files
FILE(GLOB_RECURSE all_files ${CMAKE_SOURCE_DIR}/*)
add_custom_target(all_${PROJECT_NAME}_files SOURCES ${all_files})
###############################################################################
# INCLUDES and LIBS
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
)
# create ament index resource which references the libraries in the binary dir
set(node_plugins "")
# set eys3d wrapper header files
set(eys3d_depth_INCLUDE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/lib/eSPDI/"
"${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/include"
"${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/include/DMPreview_utility"
"${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/include/DMPreview_utility/hidapi"
"${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/include/devices/model"
"${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/include/video")
message(STATUS "eys3d_depth_INCLUDE_DIRS= ${eys3d_depth_INCLUDE_DIRS}")
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
${OpenCV_INCLUDE_DIRS}
${cv_bridge_INCLUDE_DIRS}
${eys3d_depth_INCLUDE_DIRS}
)
# Submodule eys3d_wrapper_prebuilt_linux
if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set(ESPDI_PLATFORM_NAME X86_64)
elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "aarch64")
set(ESPDI_PLATFORM_NAME NVIDIA_64)
endif()
# set eys3d wrapper library
set(eys3d_depth_LIB "${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/lib/libeys3d.${ESPDI_PLATFORM_NAME}.so")
message(STATUS "eys3d_depth_library= ${eys3d_depth_LIB}")
link_directories(${eys3d_depth_LIB})
set(LINK_LIBRARIES
${OpenCV_LIBS}
${eys3d_depth_LIB}
)
###############################################################################
# set apc camera header and source files path
set(APC_CAMERA_INC
${CMAKE_CURRENT_SOURCE_DIR}/include/apc_camera_component.hpp
)
set(APC_CAMERA_SRC
${CMAKE_CURRENT_SOURCE_DIR}/src/apc_camera_component.cpp
)
###############################################################################
# Bin and Install for apc_camera_component
add_library(apc_camera_component SHARED
${APC_CAMERA_INC}
${APC_CAMERA_SRC}
)
target_compile_definitions(apc_camera_component
PRIVATE "COMPOSITION_BUILDING_DLL"
)
target_link_libraries(apc_camera_component
${LINK_LIBRARIES}
)
ament_target_dependencies(apc_camera_component
${DEPENDENCIES}
)
rclcpp_components_register_nodes(apc_camera_component "dmpreview::ApcCamera")
set(node_plugins "${node_plugins}dmpreview::ApcCamera;$<TARGET_FILE:apc_camera_component>\n")
###############################################################################
# Bin and Install for apc_camera_node
set(APC_WRAPPER_SRC
${CMAKE_CURRENT_SOURCE_DIR}/src/apc_wrapper.cpp
)
add_executable(apc_camera_node
${APC_WRAPPER_SRC}
)
target_link_libraries(apc_camera_node
apc_camera_component
)
ament_target_dependencies(apc_camera_node
rclcpp
rclcpp_components
)
###############################################################################
# Bin and Install for apc_dm_preview_listener
add_executable(apc_camera_listener_node src/apc_camera_listener.cpp)
target_link_libraries(apc_camera_listener_node
apc_camera_component
)
ament_target_dependencies(apc_camera_listener_node rclcpp image_transport)
###############################################################################
# Install apc_camera_listener_node node
install(TARGETS
apc_camera_listener_node
DESTINATION lib/${PROJECT_NAME}
)
# Install apc_camera_component
install(TARGETS
apc_camera_component
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION lib
)
# Install apc_camera_node node
install(TARGETS
apc_camera_node
DESTINATION lib/${PROJECT_NAME}
)
# Install eys3d wrapper libs
install(DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/lib/
DESTINATION lib/
)
# Install header files
install(DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/include/
${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/include/
${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/include/DMPreview_utility/
DESTINATION include/${PROJECT_NAME}/
)
# Install launch files
install(
DIRECTORY launch
DESTINATION share/${PROJECT_NAME}
)
# Install rviz files
install(
DIRECTORY rviz
DESTINATION share/${PROJECT_NAME}
)
# Install eys3d cfg files
install(
DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/eYs3D_wrapper/eYs3D
DESTINATION ../../
)
install(
DIRECTORY
config
DESTINATION share/${PROJECT_NAME}
)
###############################################################################
ament_export_include_directories(include include/${PROJECT_NAME} include/${PROJECT_NAME}/DMPreview_utility/hidapi )
ament_export_libraries(apc_camera_component)
ament_export_dependencies(${DEPENDENCIES})
ament_package()