|
@@ -1,68 +1,65 @@
|
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
project(saturn_controller)
|
|
|
|
|
|
-# Default to C99
|
|
|
-if(NOT CMAKE_C_STANDARD)
|
|
|
- set(CMAKE_C_STANDARD 99)
|
|
|
-endif()
|
|
|
-
|
|
|
-# Default to C++17
|
|
|
-if(NOT CMAKE_CXX_STANDARD)
|
|
|
- set(CMAKE_CXX_STANDARD 17)
|
|
|
+# Default to C99
|
|
|
+if(NOT CMAKE_C_STANDARD)
|
|
|
+ set(CMAKE_C_STANDARD 99)
|
|
|
+endif()
|
|
|
+
|
|
|
+# Default to C++17
|
|
|
+if(NOT CMAKE_CXX_STANDARD)
|
|
|
+ set(CMAKE_CXX_STANDARD 17)
|
|
|
endif()
|
|
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
|
add_compile_options(-Wall -Wextra -Wpedantic)
|
|
|
endif()
|
|
|
|
|
|
-
|
|
|
find_package(ament_cmake REQUIRED)
|
|
|
-find_package(rclcpp REQUIRED)
|
|
|
-find_package(rclcpp_components REQUIRED)
|
|
|
-find_package(ysc_robot_msgs REQUIRED)
|
|
|
-find_package(daystar_navigation_msgs REQUIRED)
|
|
|
-find_package(saturn_msgs REQUIRED)
|
|
|
find_package(spdlog REQUIRED)
|
|
|
|
|
|
-set(THIS_PACKAGE_INCLUDE_DEPENDS
|
|
|
-rclcpp
|
|
|
-rclcpp_components
|
|
|
-ysc_robot_msgs
|
|
|
-daystar_navigation_msgs
|
|
|
-saturn_msgs
|
|
|
+set(ROS_DEPENDS
|
|
|
+ rclcpp
|
|
|
+ rclcpp_components
|
|
|
+ ysc_robot_msgs
|
|
|
+ daystar_navigation_msgs
|
|
|
+ saturn_msgs
|
|
|
+ std_srvs
|
|
|
)
|
|
|
|
|
|
+foreach(pkg_name IN LISTS ROS_DEPENDS)
|
|
|
+ find_package(${pkg_name} REQUIRED)
|
|
|
+endforeach()
|
|
|
+
|
|
|
include_directories(./sdk/include)
|
|
|
include_directories(./include)
|
|
|
|
|
|
-
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
|
|
- message(STATUS "Building for 64-bit Linux on x86_64")
|
|
|
- set(SDK_PATH "${CMAKE_CURRENT_SOURCE_DIR}/sdk/lib/x86_64")
|
|
|
+ message(STATUS "Building for 64-bit Linux on x86_64")
|
|
|
+ set(SDK_PATH "${CMAKE_CURRENT_SOURCE_DIR}/sdk/lib/x86_64")
|
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
|
|
- message(STATUS "Building for 64-bit Linux on ARM64")
|
|
|
- set(SDK_PATH "${CMAKE_CURRENT_SOURCE_DIR}/sdk/lib/arm")
|
|
|
+ message(STATUS "Building for 64-bit Linux on ARM64")
|
|
|
+ set(SDK_PATH "${CMAKE_CURRENT_SOURCE_DIR}/sdk/lib/arm")
|
|
|
endif()
|
|
|
|
|
|
link_directories(${SDK_PATH})
|
|
|
install(DIRECTORY ${SDK_PATH}/
|
|
|
-DESTINATION lib/
|
|
|
+ DESTINATION lib/
|
|
|
)
|
|
|
|
|
|
file(GLOB main_files src/*.cpp)
|
|
|
|
|
|
add_library(saturn_controller_component SHARED src/saturn_controller.cpp ${main_files})
|
|
|
target_link_libraries(saturn_controller_component spdlog::spdlog -lmc_client)
|
|
|
-ament_target_dependencies(saturn_controller_component ${THIS_PACKAGE_INCLUDE_DEPENDS})
|
|
|
+ament_target_dependencies(saturn_controller_component ${ROS_DEPENDS})
|
|
|
rclcpp_components_register_nodes(saturn_controller_component "saturn_ros2::SaturnController")
|
|
|
|
|
|
-
|
|
|
-install(TARGETS
|
|
|
+install(TARGETS
|
|
|
saturn_controller_component
|
|
|
ARCHIVE DESTINATION lib
|
|
|
LIBRARY DESTINATION lib
|
|
|
RUNTIME DESTINATION lib/${PROJECT_NAME}/
|
|
|
- )
|
|
|
+)
|
|
|
|
|
|
install(DIRECTORY
|
|
|
include/
|