@@ -110,26 +110,8 @@ set(COMMON_INCLUDE_DIRS
110110 $<INSTALL_INTERFACE :include > ${ORBBEC_INCLUDE_DIR} ${OpenCV_INCLUDED_DIRS} ${CMAKE_CURRENT_SOURCE_DIR } /tools
111111)
112112
113- set (COMMON_LIBRARIES
114- ${ORBBEC_SDK_LIBRARIES}
115- ${OpenCV_LIBS}
116- Eigen3::Eigen
117- -lOrbbecSDK
118- -L${ORBBEC_LIBS_DIR}
119- Threads::Threads
120- -lrt
121- -ldw
122- yaml-cpp
123- OpenSSL::Crypto
113+ set (EXTRA_TARGETS
124114)
125- if (USE_RK_HW_DECODER)
126- list (APPEND COMMON_LIBRARIES ${RK_MPP_LIBRARIES} ${RGA_LIBRARIES} )
127-
128- endif ()
129-
130- if (USE_NV_HW_DECODER)
131- list (APPEND COMMON_LIBRARIES ${NV_LIBRARIES} )
132- endif ()
133115
134116set (SOURCE_FILES
135117 src/d2c_viewer.cpp
@@ -150,15 +132,16 @@ if(USE_RK_HW_DECODER)
150132 add_definitions (-DUSE_RK_HW_DECODER )
151133 list (APPEND SOURCE_FILES src/rk_mpp_decoder.cpp)
152134 list (APPEND COMMON_INCLUDE_DIRS ${RK_MPP_INCLUDE_DIRS} ${RGA_INCLUDE_DIRS} )
153- list (APPEND COMMON_LIBRARIES ${RGA_LIBRARIES} ${RK_MPP_LIBRARIES} )
135+ list (APPEND EXTRA_TARGETS ${RGA_LIBRARIES} ${RK_MPP_LIBRARIES} )
154136 if (NOT RGA_FOUND)
155- list (APPEND COMMON_LIBRARIES -lyuv )
137+ list (APPEND EXTRA_TARGETS yuv )
156138 endif ()
157139endif ()
158140
159141if (USE_NV_HW_DECODER)
160142 list (APPEND SOURCE_FILES src/jetson_nv_decoder.cpp)
161143 list (APPEND COMMON_INCLUDE_DIRS ${JETSON_MULTI_MEDIA_API_INCLUDE_DIR} ${LIBJPEG8B_INCLUDE_DIR} )
144+ list (APPEND EXTRA_TARGETS ${NV_LIBRARIES} )
162145 # append jetson_multimedia_api source files
163146 list (
164147 APPEND
@@ -181,16 +164,41 @@ endif()
181164macro (add_orbbec_executable TARGET SOURCE )
182165 add_executable (${TARGET} ${SOURCE} )
183166 target_include_directories (${TARGET} PUBLIC ${COMMON_INCLUDE_DIRS} )
184- target_link_libraries (${TARGET} ${COMMON_LIBRARIES} ${PROJECT_NAME } )
185- ament_target_dependencies (${TARGET} ${dependencies} )
167+ target_link_directories (${TARGET} PRIVATE
168+ ${ORBBEC_LIBS_DIR}
169+ )
170+ target_link_libraries (${TARGET}
171+ ${OpenCV_LIBS}
172+ ${PROJECT_NAME }
173+ OrbbecSDK
174+ yaml-cpp
175+ )
186176endmacro ()
187177
188178# Define library and nodes
189179add_library (${PROJECT_NAME } SHARED ${SOURCE_FILES} )
190180
191- ament_target_dependencies (${PROJECT_NAME } ${dependencies} )
192- target_include_directories (${PROJECT_NAME } PUBLIC ${COMMON_INCLUDE_DIRS} )
193- target_link_libraries (${PROJECT_NAME } ${COMMON_LIBRARIES} )
181+ target_include_directories (${PROJECT_NAME } PUBLIC ${COMMON_INCLUDE_DIRS} ${image_publisher_INCLUDE_DIRS} )
182+ target_link_libraries (${PROJECT_NAME }
183+ ${OpenCV_LIBS}
184+ ${orbbec_camera_msgs_TARGETS}
185+ ${sensor_msgs_TARGETS}
186+ ${std_srvs_TARGETS}
187+ ament_index_cpp::ament_index_cpp
188+ camera_info_manager::camera_info_manager
189+ cv_bridge::cv_bridge
190+ diagnostic_updater::diagnostic_updater
191+ Eigen3::Eigen
192+ image_transport::image_transport
193+ message_filters::message_filters
194+ OpenSSL::Crypto
195+ OrbbecSDK
196+ rclcpp::rclcpp
197+ rclcpp_components::component
198+ tf2::tf2
199+ tf2_ros::tf2_ros
200+ ${EXTRA_TARGETS}
201+ )
194202
195203rclcpp_components_register_node (
196204 ${PROJECT_NAME } PLUGIN "orbbec_camera::OBCameraNodeDriver" EXECUTABLE orbbec_camera_node
@@ -217,24 +225,56 @@ install(
217225
218226add_library (frame_latency SHARED tools/frame_latency.cpp )
219227target_include_directories (frame_latency PUBLIC ${COMMON_INCLUDE_DIRS} )
220- target_link_libraries (frame_latency ${COMMON_LIBRARIES} )
221- ament_target_dependencies (frame_latency ${dependencies} )
228+ target_link_libraries (frame_latency
229+ ${orbbec_camera_msgs_TARGETS}
230+ ${sensor_msgs_TARGETS}
231+ ${tf2_msgs_TARGETS}
232+ diagnostic_updater::diagnostic_updater
233+ rclcpp::rclcpp
234+ rclcpp_components::component
235+ )
222236
223237rclcpp_components_register_node (frame_latency PLUGIN "orbbec_camera::FrameLatencyNode" EXECUTABLE frame_latency_node )
224238
225239add_library (start_benchmark SHARED tools/start_benchmark.cpp )
226- target_include_directories (start_benchmark PUBLIC ${COMMON_INCLUDE_DIRS} )
227- target_link_libraries (start_benchmark ${COMMON_LIBRARIES} )
228- ament_target_dependencies (start_benchmark ${dependencies} )
240+ target_include_directories (start_benchmark PUBLIC ${COMMON_INCLUDE_DIRS} ${image_publisher_INCLUDE_DIRS} )
241+ target_link_libraries (start_benchmark
242+ ${OpenCV_LIBS}
243+ ${orbbec_camera_msgs_TARGETS}
244+ ${sensor_msgs_TARGETS}
245+ ${std_srvs_TARGETS}
246+ camera_info_manager::camera_info_manager
247+ diagnostic_updater::diagnostic_updater
248+ Eigen3::Eigen
249+ image_transport::image_transport
250+ rclcpp::rclcpp
251+ rclcpp_components::component
252+ tf2_ros::tf2_ros
253+ )
229254
230255rclcpp_components_register_node (
231256 start_benchmark PLUGIN "orbbec_camera::tools::StartBenchmark" EXECUTABLE start_benchmark_node
232257)
233258
234259add_library (multi_save_rgbir SHARED tools/multi_save_rgbir.cpp src/utils.cpp )
235- target_include_directories (multi_save_rgbir PUBLIC ${COMMON_INCLUDE_DIRS} )
236- target_link_libraries (multi_save_rgbir ${COMMON_LIBRARIES} )
237- ament_target_dependencies (multi_save_rgbir ${dependencies} )
260+ target_include_directories (multi_save_rgbir PUBLIC ${COMMON_INCLUDE_DIRS} ${image_publisher_INCLUDE_DIRS} )
261+ target_link_libraries (multi_save_rgbir
262+ ${OpenCV_LIBS}
263+ ${orbbec_camera_msgs_TARGETS}
264+ ${sensor_msgs_TARGETS}
265+ ${std_srvs_TARGETS}
266+ camera_info_manager::camera_info_manager
267+ cv_bridge::cv_bridge
268+ diagnostic_updater::diagnostic_updater
269+ Eigen3::Eigen
270+ image_transport::image_transport
271+ OpenSSL::Crypto
272+ OrbbecSDK
273+ rclcpp::rclcpp
274+ rclcpp_components::component
275+ tf2::tf2
276+ tf2_ros::tf2_ros
277+ )
238278
239279rclcpp_components_register_node (
240280 multi_save_rgbir PLUGIN "orbbec_camera::tools::MultiCameraSubscriber" EXECUTABLE multi_save_rgbir_node
0 commit comments