1- cmake_minimum_required (VERSION 2.8.12 )
1+ cmake_minimum_required (VERSION 3.5 )
22project (darknet_ros)
33
4- # Set c++11 cmake flags
5- set (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS} " )
6- set (CMAKE_C_FLAGS "-Wall -Wno-unused-result -Wno-unknown-pragmas -Wno-unused-variable -Wfatal-errors -fPIC ${CMAKE_C_FLAGS} " )
4+ set (CMAKE_CXX_STANDARD 17)
5+
76
87# Define path of darknet folder here.
98find_path (DARKNET_PATH
@@ -45,46 +44,40 @@ if ( X11_FOUND )
4544endif ( X11_FOUND )
4645
4746# Find rquired packeges
48- find_package (Boost REQUIRED COMPONENTS thread)
4947find_package (OpenCV REQUIRED)
5048include_directories (${OpenCV_INCLUDE_DIRS} )
51- find_package (catkin REQUIRED
52- COMPONENTS
53- cv_bridge
54- roscpp
55- rospy
49+
50+ find_package (ament_cmake REQUIRED)
51+ find_package (rclcpp REQUIRED)
52+ find_package (rclpy REQUIRED)
53+ find_package (rclcpp_action REQUIRED)
54+ find_package (std_msgs REQUIRED)
55+ find_package (image_transport REQUIRED)
56+ find_package (cv_bridge REQUIRED)
57+ find_package (sensor_msgs REQUIRED)
58+ find_package (darknet_ros_msgs REQUIRED)
59+ find_package (ament_index_cpp REQUIRED)
60+
61+ set (dependencies
62+ rclcpp
63+ rclpy
64+ rclcpp_action
5665 std_msgs
57- actionlib
58- darknet_ros_msgs
5966 image_transport
67+ cv_bridge
68+ sensor_msgs
69+ darknet_ros_msgs
70+ ament_index_cpp
6071)
6172
6273# Enable OPENCV in darknet
6374add_definitions (-DOPENCV)
6475add_definitions (-O4 -g)
6576
66- catkin_package(
67- INCLUDE_DIRS
68- include
69- LIBRARIES
70- ${PROJECT_NAME} _lib
71- CATKIN_DEPENDS
72- cv_bridge
73- roscpp
74- actionlib
75- rospy
76- std_msgs
77- darknet_ros_msgs
78- image_transport
79- DEPENDS
80- Boost
81- )
82-
8377include_directories (
8478 ${DARKNET_PATH} /src
8579 ${DARKNET_PATH} /include
8680 include
87- ${Boost_INCLUDE_DIRS}
8881 ${catkin_INCLUDE_DIRS}
8982)
9083
@@ -145,6 +138,8 @@ if (CUDA_FOUND)
145138 ${PROJECT_LIB_FILES} ${DARKNET_CORE_FILES}
146139 ${DARKNET_CUDA_FILES}
147140 )
141+
142+ ament_target_dependencies(${PROJECT_NAME} _lib ${dependencies} )
148143
149144 target_link_libraries (${PROJECT_NAME} _lib
150145 cuda
@@ -156,24 +151,27 @@ if (CUDA_FOUND)
156151 cuda_add_executable(${PROJECT_NAME}
157152 src/yolo_object_detector_node.cpp
158153 )
154+
155+ ament_target_dependencies(${PROJECT_NAME} ${dependencies} )
159156
160157else ()
161158
162159 add_library (${PROJECT_NAME} _lib
163160 ${PROJECT_LIB_FILES} ${DARKNET_CORE_FILES}
164161 )
162+ ament_target_dependencies(${PROJECT_NAME} _lib ${dependencies} )
165163
166164 add_executable (${PROJECT_NAME}
167165 src/yolo_object_detector_node.cpp
168166 )
167+ ament_target_dependencies(${PROJECT_NAME} ${dependencies} )
169168
170169endif ()
171170
172171target_link_libraries (${PROJECT_NAME} _lib
173172 m
174173 pthread
175174 stdc++
176- ${Boost_LIBRARIES}
177175 ${OpenCV_LIBRARIES}
178176 ${catkin_LIBRARIES}
179177 ${OpenCV_LIBS}
@@ -183,23 +181,17 @@ target_link_libraries(${PROJECT_NAME}
183181 ${PROJECT_NAME} _lib
184182)
185183
186- add_dependencies (${PROJECT_NAME} _lib
187- darknet_ros_msgs_generate_messages_cpp
188- )
189184
190- install (TARGETS ${PROJECT_NAME} _lib
191- ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
192- LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
193- RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION }
185+ install (TARGETS ${PROJECT_NAME} _lib ${PROJECT_NAME}
186+ ARCHIVE DESTINATION lib
187+ LIBRARY DESTINATION lib
188+ RUNTIME DESTINATION lib/ ${PROJECT_NAME }
194189)
195190
196- install (TARGETS ${PROJECT_NAME}
197- RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
198- )
199191
200192install (
201- DIRECTORY include /${PROJECT_NAME} /
202- DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
193+ DIRECTORY include /
194+ DESTINATION include /
203195 FILES_MATCHING PATTERN "*.h"
204196)
205197
@@ -220,11 +212,14 @@ if (NOT EXISTS "${FILE}")
220212 execute_process (COMMAND wget http://pjreddie.com/media/files /yolov3.weights -P ${PATH} )
221213endif ()
222214
215+ install (DIRECTORY yolo_network_config/cfg yolo_network_config/weights DESTINATION share/${PROJECT_NAME} /yolo_network_config/)
216+ install (DIRECTORY launch config DESTINATION share/${PROJECT_NAME} /)
217+
223218#############
224219## Testing ##
225220#############
226221
227- if (CATKIN_ENABLE_TESTING )
222+ if (BUILD_TESTING )
228223 # Download yolov2.weights
229224 set (PATH "${CMAKE_CURRENT_SOURCE_DIR} /yolo_network_config/weights" )
230225 set (FILE "${PATH} /yolov2.weights" )
@@ -234,15 +229,24 @@ if(CATKIN_ENABLE_TESTING)
234229 execute_process (COMMAND wget http://pjreddie.com/media/files /yolov2.weights -P ${PATH} )
235230 endif ()
236231
237- find_package (rostest REQUIRED)
238-
239- # Object detection in images.
240- add_rostest_gtest(${PROJECT_NAME} _object_detection-test
241- test /object_detection.test
242- test /test_main.cpp
243- test /ObjectDetection.cpp
244- )
245- target_link_libraries (${PROJECT_NAME} _object_detection-test
246- ${catkin_LIBRARIES}
247- )
232+ find_package (ament_lint_auto REQUIRED)
233+ ament_lint_auto_find_test_dependencies()
234+
235+ find_package (ament_cmake_gtest REQUIRED)
236+
237+ #ament_add_gtest(${PROJECT_NAME}_object_detection-test
238+ # test/object_detection.test
239+ # test/test_main.cpp
240+ # test/ObjectDetection.cpp
241+ #)
242+ #target_link_libraries(${PROJECT_NAME}_object_detection-test
243+ # ${PROJECT_NAME}_lib
244+ #)
248245endif ()
246+
247+
248+ ament_export_include_directories(include )
249+ ament_export_libraries(${PROJECT_NAME} _lib)
250+ ament_export_dependencies(${dependencies} )
251+
252+ ament_package()
0 commit comments