cmake_minimum_required(VERSION 3.8) project(amadeus_26) # 使用 C++17 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 查找依赖 find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(std_msgs REQUIRED) # 查找 serial 库 (用于 UART 节点) find_package(serial REQUIRED) # 添加 SDK 库路径 set(TRANSMITTER_SDK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib/transmitter_sdk) link_directories(${TRANSMITTER_SDK_PATH}/lib/linux/x64) # 包含目录 include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${TRANSMITTER_SDK_PATH}/inc ) # ==================== CAN 节点 ==================== add_executable(transmitter_test_node src/transmitter_test_node.cpp) set_target_properties(transmitter_test_node PROPERTIES BUILD_WITH_INSTALL_RPATH FALSE LINK_FLAGS "-Wl,-rpath,'${TRANSMITTER_SDK_PATH}/lib/linux/x64'" ) ament_target_dependencies(transmitter_test_node rclcpp std_msgs ) target_link_libraries(transmitter_test_node dm_device usb-1.0 pthread ) # ==================== UART 节点 ==================== add_executable(uart_transmitter_node src/uart_transmitter_node.cpp) ament_target_dependencies(uart_transmitter_node rclcpp std_msgs serial ) # ==================== 安装目标 ==================== install(TARGETS transmitter_test_node uart_transmitter_node DESTINATION lib/${PROJECT_NAME} ) # 安装 launch 文件 install(DIRECTORY launch DESTINATION share/${PROJECT_NAME} OPTIONAL ) ament_package()