123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- 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)
- 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(spdlog REQUIRED)
- 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")
- 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")
- endif()
- link_directories(${SDK_PATH})
- install(DIRECTORY ${SDK_PATH}/
- 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 ${ROS_DEPENDS})
- rclcpp_components_register_nodes(saturn_controller_component "saturn_ros2::SaturnController")
- install(TARGETS
- saturn_controller_component
- ARCHIVE DESTINATION lib
- LIBRARY DESTINATION lib
- RUNTIME DESTINATION lib/${PROJECT_NAME}/
- )
- install(DIRECTORY
- include/
- DESTINATION include/
- )
- install(DIRECTORY
- launch
- DESTINATION share/${PROJECT_NAME}/)
- install(DIRECTORY
- config
- DESTINATION share/${PROJECT_NAME}/
- )
- ament_package()
|