diff --git a/unitree_lidar_ros2/CMakeLists.txt b/unitree_lidar_ros2/CMakeLists.txt index da14495..ece9c58 100644 --- a/unitree_lidar_ros2/CMakeLists.txt +++ b/unitree_lidar_ros2/CMakeLists.txt @@ -1,12 +1,13 @@ cmake_minimum_required(VERSION 3.5) + +cmake_policy(SET CMP0074 NEW) + project(unitree_lidar_ros2) -# 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 17) endif() @@ -24,42 +25,51 @@ find_package(PCL REQUIRED) find_package(tf2_ros REQUIRED) find_package(sensor_msgs REQUIRED) +# SDK include path include_directories( - ${PCL_INCLUDE_DIRS} include - ../unitree_lidar_sdk/include -) - -link_directories( - ${PCL_LIBRARY_DIRS} - ../unitree_lidar_sdk/lib/${CMAKE_SYSTEM_PROCESSOR} + /usr/local/include/unitree_lidar_sdk + ${PCL_INCLUDE_DIRS} ) add_definitions(${PCL_DEFINITIONS}) -add_executable(unitree_lidar_ros2_node src/unitree_lidar_ros2_node.cpp) +# SDK library path by architecture +if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") + set(UNITREE_LIDAR_SDK_LIB + /usr/local/lib/unitree_lidar_sdk/aarch64/libunilidar_sdk2.a + ) +else() + set(UNITREE_LIDAR_SDK_LIB + /usr/local/lib/unitree_lidar_sdk/x86_64/libunilidar_sdk2.a + ) +endif() -target_link_libraries( unitree_lidar_ros2_node - ${Boost_SYSTEM_LIBRARY} +add_executable(unitree_lidar_ros2_node + src/unitree_lidar_ros2_node.cpp +) + +target_link_libraries( + unitree_lidar_ros2_node + ${UNITREE_LIDAR_SDK_LIB} ${PCL_LIBRARIES} - unilidar_sdk2 ) ament_target_dependencies( unitree_lidar_ros2_node - rclcpp std_msgs + rclcpp + std_msgs sensor_msgs - geometry_msgs + geometry_msgs tf2_ros pcl_conversions ) install(TARGETS -unitree_lidar_ros2_node + unitree_lidar_ros2_node DESTINATION lib/${PROJECT_NAME} ) -# install rviz file and launch file install(DIRECTORY launch/ DESTINATION share/${PROJECT_NAME}/launch ) @@ -68,7 +78,6 @@ install(DIRECTORY rviz/ DESTINATION share/${PROJECT_NAME}/rviz ) -# install config files if they exist if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/config") install(DIRECTORY config/ DESTINATION share/${PROJECT_NAME}/config