@@ -7,25 +7,11 @@ if(NOT CMAKE_CXX_STANDARD)
77endif ()
88
99if (CMAKE_COMPILER_IS_GNUCXX OR  CMAKE_CXX_COMPILER_ID MATCHES  "Clang" )
10-   if ($ENV{ROS_VERSION}  EQUAL  2)
11-     add_compile_options (-Wall -Wextra -Wpedantic -Werror)
12-   endif ()
10+   add_compile_options (-Wall -Wextra -Wpedantic -Werror)
1311endif ()
1412
15- # Remove once ROS 1 Noetic is deprecated 
16- if ($ENV{ROS_VERSION}  EQUAL  1)
17-   find_package (catkin REQUIRED COMPONENTS
18-     cv_bridge
19-     roscpp
20-     std_msgs
21-     std_srvs
22-     sensor_msgs
23-     camera_info_manager
24-     image_transport)
25- else ()
26-   find_package (ament_cmake_auto REQUIRED)
27-   ament_auto_find_build_dependencies()
28- endif ()
13+ find_package (ament_cmake_auto REQUIRED)
14+ ament_auto_find_build_dependencies()
2915
3016find_package (OpenCV REQUIRED)
3117
@@ -63,103 +49,65 @@ target_link_libraries(${PROJECT_NAME}
6349  ${swscale_LIBRARIES} 
6450  ${OpenCV_LIBRARIES} )
6551
66- # Remove once ROS 1 Noetic is deprecated 
67- if ($ENV{ROS_VERSION}  EQUAL  1)
68-   catkin_package(
69-     INCLUDE_DIRS include 
70-     LIBRARIES ${PROJECT_NAME} 
71-   )
72- 
73-   add_executable (${PROJECT_NAME} _node src/ros1/usb_cam_node.cpp)
74-   target_link_libraries (${PROJECT_NAME} _node
75-     ${PROJECT_NAME} 
76-     ${catkin_LIBRARIES} 
77-   )
78-   target_include_directories (${PROJECT_NAME} _node PUBLIC 
79-     ${catkin_INCLUDE_DIRS} )
80- else ()
81-   ament_export_libraries(${PROJECT_NAME} )
82- 
83-   ## Declare a ROS 2 composible node as a library 
84-   ament_auto_add_library(${PROJECT_NAME} _node SHARED
85-     src/ros2/usb_cam_node.cpp
86-   )
87- 
88-   target_link_libraries (${PROJECT_NAME} _node
89-     ${PROJECT_NAME} )
52+ ament_export_libraries(${PROJECT_NAME} )
9053
91-   ## Use node to generate an executable 
92-   rclcpp_components_register_node(${PROJECT_NAME} _node
93-     PLUGIN "usb_cam::UsbCamNode" 
94-     EXECUTABLE ${PROJECT_NAME} _node_exe
95-   )
96-   if (SANITIZE)
97-     target_compile_options (${PROJECT_NAME}  PUBLIC  -fsanitize=address -fsanitize=leak)
98-     target_link_libraries (${PROJECT_NAME}  -fsanitize=address -fsanitize=leak)
99-     target_compile_options (${PROJECT_NAME} _node PUBLIC  -fsanitize=address -fsanitize=leak)
100-     target_link_libraries (${PROJECT_NAME} _node -fsanitize=address -fsanitize=leak)
101-     target_link_libraries (${PROJECT_NAME} _node_exe -fsanitize=address -fsanitize=leak)
102-   endif ()
103- endif ()
54+ ## Declare a ROS 2 composible node as a library 
55+ ament_auto_add_library(${PROJECT_NAME} _node SHARED
56+   src/usb_cam_node.cpp
57+ )
10458
105- if (BUILD_TESTING)
106-   if ($ENV{ROS_VERSION}  EQUAL  2)
107-     find_package (ament_lint_auto REQUIRED)
108-     ament_lint_auto_find_test_dependencies()
59+ target_link_libraries (${PROJECT_NAME} _node
60+   ${PROJECT_NAME} )
10961
110-     find_package (ament_cmake_gtest)
62+ ## Use node to generate an executable 
63+ rclcpp_components_register_node(${PROJECT_NAME} _node
64+   PLUGIN "usb_cam::UsbCamNode" 
65+   EXECUTABLE ${PROJECT_NAME} _node_exe
66+ )
11167
112-     # Unit tests 
113-     ament_add_gtest(test_usb_cam_utils
114-       test /test_usb_cam_utils.cpp)
115-     target_link_libraries (test_usb_cam_utils
116-       ${PROJECT_NAME} )
117-     ament_add_gtest(test_pixel_formats
118-       test /test_pixel_formats.cpp)
119-     target_link_libraries (test_pixel_formats
68+ if (SANITIZE)
69+   target_compile_options (${PROJECT_NAME}  PUBLIC  -fsanitize=address -fsanitize=leak)
70+   target_link_libraries (${PROJECT_NAME}  -fsanitize=address -fsanitize=leak)
71+   target_compile_options (${PROJECT_NAME} _node PUBLIC  -fsanitize=address -fsanitize=leak)
72+   target_link_libraries (${PROJECT_NAME} _node -fsanitize=address -fsanitize=leak)
73+   target_link_libraries (${PROJECT_NAME} _node_exe -fsanitize=address -fsanitize=leak)
74+ endif ()
75+ 
76+ if (BUILD_TESTING)
77+   find_package (ament_lint_auto REQUIRED)
78+   ament_lint_auto_find_test_dependencies()
79+   find_package (ament_cmake_gtest)
80+   # Unit tests 
81+   ament_add_gtest(test_usb_cam_utils
82+     test /test_usb_cam_utils.cpp)
83+   target_link_libraries (test_usb_cam_utils
84+     ${PROJECT_NAME} )
85+   ament_add_gtest(test_pixel_formats
86+     test /test_pixel_formats.cpp)
87+   target_link_libraries (test_pixel_formats
88+     ${PROJECT_NAME} )
89+   if (INTEGRATION_TESTS)
90+     ament_add_gtest(test_usb_cam_lib
91+       test /test_usb_cam_lib.cpp)
92+     target_link_libraries (test_usb_cam_lib
12093      ${PROJECT_NAME} )
121-     # TODO(flynneva): rewrite this test in another PR 
122-     # Integration tests 
123-     # ament_add_gtest(test_usb_cam_lib 
124-     #  test/test_usb_cam_lib.cpp) 
125-     # target_link_libraries(test_usb_cam_lib 
126-     #   ${PROJECT_NAME}) 
12794  endif ()
12895endif ()
12996
97+ install (
98+   PROGRAMS scripts/show_image.py
99+   DESTINATION  lib/${PROJECT_NAME} )
130100
131- if ($ENV{ROS_VERSION}  EQUAL  1)
132-   install (TARGETS ${PROJECT_NAME} _node ${PROJECT_NAME} 
133-     RUNTIME DESTINATION  ${CATKIN_PACKAGE_BIN_DESTINATION} 
134-     LIBRARY DESTINATION  ${CATKIN_PACKAGE_LIB_DESTINATION} 
135-   )
136- 
137-   ## Copy launch files 
138-   install (DIRECTORY  launch/
139-     DESTINATION  ${CATKIN_PACKAGE_SHARE_DESTINATION} /launch
140-     FILES_MATCHING PATTERN "*.launch" 
141-   )
142- 
143-   install (DIRECTORY  include /${PROJECT_NAME} /
144-     DESTINATION  ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 
145-     FILES_MATCHING PATTERN "*.h"  PATTERN "*.hpp" 
146-   )
147- else ()
148-   install (
149-     PROGRAMS scripts/show_image.py
150-     DESTINATION  lib/${PROJECT_NAME} )
151- 
152-   install (TARGETS
153-     ${PROJECT_NAME} 
154-     ${PROJECT_NAME} _node
155-     ARCHIVE DESTINATION  lib
156-     LIBRARY DESTINATION  lib
157-     RUNTIME DESTINATION  lib
158-   )
159- 
160-   ament_auto_package(
161-     INSTALL_TO_SHARE
162-       launch
163-       config
164-   )
165- endif ()
101+ install (TARGETS
102+   ${PROJECT_NAME} 
103+   ${PROJECT_NAME} _node
104+   ARCHIVE DESTINATION  lib
105+   LIBRARY DESTINATION  lib
106+   RUNTIME DESTINATION  lib
107+ )
108+ 
109+ ament_auto_package(
110+   INSTALL_TO_SHARE
111+     launch
112+     config
113+ )
0 commit comments