|
1 | 1 | # SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES |
2 | | -# Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. |
| 2 | +# Copyright (c) 2021-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. |
3 | 3 | # |
4 | 4 | # Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | # you may not use this file except in compliance with the License. |
|
15 | 15 | # |
16 | 16 | # SPDX-License-Identifier: Apache-2.0 |
17 | 17 |
|
18 | | -cmake_minimum_required(VERSION 3.8) |
19 | | -project(isaac_ros_argus_camera) |
20 | | - |
21 | | -# Default to C++17 |
22 | | -if(NOT CMAKE_CXX_STANDARD) |
23 | | - set(CMAKE_CXX_STANDARD 17) |
24 | | -endif() |
| 18 | +cmake_minimum_required(VERSION 3.23.2) |
| 19 | +project(isaac_ros_argus_camera LANGUAGES C CXX) |
25 | 20 |
|
26 | 21 | if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
27 | 22 | add_compile_options(-Wall -Wextra -Wpedantic) |
28 | 23 | endif() |
29 | 24 |
|
30 | | -# Default to Release build |
31 | | -if(NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "") |
32 | | - set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE) |
33 | | -endif() |
34 | | -message( STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}" ) |
35 | | - |
36 | | -execute_process( |
37 | | - COMMAND uname -m |
38 | | - COMMAND tr -d '\n' |
39 | | - OUTPUT_VARIABLE ARCHITECTURE) |
40 | | -message(STATUS "Architecture: ${ARCHITECTURE}") |
| 25 | +execute_process(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE) |
| 26 | +message( STATUS "Architecture: ${ARCHITECTURE}" ) |
41 | 27 |
|
42 | 28 | find_package(ament_cmake_auto REQUIRED) |
43 | 29 | ament_auto_find_build_dependencies() |
| 30 | + |
44 | 31 | # Only build Argus nodes on Jetson platform |
45 | 32 | if(${ARCHITECTURE} STREQUAL "aarch64") |
46 | | - # Find VPI dependency |
47 | | - find_package(vpi REQUIRED) |
48 | | - # Base class |
49 | | - ament_auto_add_library(base_node SHARED src/argus_camera_node.cpp) |
50 | | - # Mono camera node |
51 | | - ament_auto_add_library(mono_node SHARED src/argus_camera_mono_node.cpp) |
52 | | - # Stereo camera node |
53 | | - ament_auto_add_library(stereo_node SHARED src/argus_camera_stereo_node.cpp) |
54 | | - |
55 | | - target_include_directories( |
56 | | - mono_node |
57 | | - PRIVATE /usr/lib/aarch64-linux-gnu/tegra |
58 | | - /usr/src/jetson_multimedia_api/argus/include |
59 | | - /usr/src/jetson_multimedia_api/argus/samples/utils |
60 | | - /usr/src/jetson_multimedia_api/include |
61 | | - include) |
62 | | - |
63 | | - target_include_directories( |
64 | | - stereo_node |
65 | | - PRIVATE /usr/lib/aarch64-linux-gnu/tegra |
66 | | - /usr/src/jetson_multimedia_api/argus/include |
67 | | - /usr/src/jetson_multimedia_api/argus/samples/utils |
68 | | - /usr/src/jetson_multimedia_api/include |
69 | | - include) |
70 | | - |
71 | | - target_compile_definitions(mono_node PRIVATE "COMPOSITION_BUILDING_DLL") |
| 33 | +# aarch64 |
72 | 34 |
|
73 | | - target_compile_definitions(stereo_node PRIVATE "COMPOSITION_BUILDING_DLL") |
| 35 | +ament_auto_add_library(base_node SHARED src/argus_camera_node.cpp) |
| 36 | +ament_auto_add_library(mono_node SHARED src/argus_camera_mono_node.cpp) |
| 37 | +rclcpp_components_register_nodes(mono_node "nvidia::isaac_ros::argus::ArgusMonoNode") |
| 38 | +set(node_plugins "${node_plugins}nvidia::isaac_ros::argus::ArgusMonoNode;$<TARGET_FILE:mono_node>\n") |
74 | 39 |
|
75 | | - target_link_libraries( |
76 | | - mono_node |
77 | | - /usr/lib/aarch64-linux-gnu/tegra/libnvargus.so |
78 | | - /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketclient.so |
79 | | - /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketserver.so |
80 | | - /usr/lib/aarch64-linux-gnu/tegra/libnvbuf_utils.so |
81 | | - vpi) |
82 | | - |
83 | | - target_link_libraries( |
84 | | - stereo_node |
85 | | - /usr/lib/aarch64-linux-gnu/tegra/libnvargus.so |
86 | | - /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketclient.so |
87 | | - /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketserver.so |
88 | | - /usr/lib/aarch64-linux-gnu/tegra/libnvbuf_utils.so |
89 | | - vpi) |
90 | | - |
91 | | - rclcpp_components_register_nodes(mono_node "nvidia::isaac_ros::argus::ArgusMonoNode") |
92 | | - set(node_plugins |
93 | | - "${node_plugins}nvidia::isaac_ros::argus::ArgusMonoNode;$<TARGET_FILE:mono_node>\n" |
94 | | - ) |
95 | | - |
96 | | - rclcpp_components_register_nodes(stereo_node "nvidia::isaac_ros::argus::ArgusStereoNode") |
97 | | - set(node_plugins |
98 | | - "${node_plugins}nvidia::isaac_ros::argus::ArgusStereoNode;$<TARGET_FILE:stereo_node>\n" |
99 | | - ) |
100 | | - |
101 | | - # Install config directory |
102 | | - install( |
103 | | - DIRECTORY config |
104 | | - DESTINATION share/${PROJECT_NAME}) |
105 | | - install( |
106 | | - DIRECTORY launch |
107 | | - DESTINATION share/${PROJECT_NAME}) |
108 | | - install( |
109 | | - TARGETS mono_node |
110 | | - ARCHIVE DESTINATION lib |
111 | | - LIBRARY DESTINATION lib |
112 | | - RUNTIME DESTINATION bin) |
113 | | - |
114 | | - install( |
115 | | - TARGETS stereo_node |
116 | | - ARCHIVE DESTINATION lib |
117 | | - LIBRARY DESTINATION lib |
118 | | - RUNTIME DESTINATION bin) |
119 | | -endif() |
| 40 | +ament_auto_add_library(stereo_node SHARED src/argus_camera_stereo_node.cpp) |
| 41 | +rclcpp_components_register_nodes(stereo_node "nvidia::isaac_ros::argus::ArgusStereoNode") |
| 42 | +set(node_plugins "${node_plugins}nvidia::isaac_ros::argus::ArgusStereoNode;$<TARGET_FILE:stereo_node>\n") |
120 | 43 |
|
121 | 44 | if(BUILD_TESTING) |
122 | 45 | find_package(ament_lint_auto REQUIRED) |
123 | 46 | ament_lint_auto_find_test_dependencies() |
124 | 47 |
|
125 | 48 | find_package(launch_testing_ament_cmake REQUIRED) |
126 | | - if(${ARCHITECTURE} STREQUAL "aarch64") |
127 | | - add_launch_test(test/isaac_ros_argus_camera_mono_test.py) |
128 | | - add_launch_test(test/isaac_ros_argus_camera_stereo_test.py) |
129 | | - endif() |
| 49 | + add_launch_test(test/isaac_ros_argus_camera_mono_test.py) |
| 50 | + add_launch_test(test/isaac_ros_argus_camera_stereo_test.py) |
130 | 51 | endif() |
131 | 52 |
|
132 | | -ament_auto_package(INSTALL_TO_SHARE launch) |
| 53 | +endif() # aarch64 |
| 54 | + |
| 55 | +ament_auto_package(INSTALL_TO_SHARE config launch) |
0 commit comments