# 设置CMake最低版本要求
cmake_minimum_required(VERSION 3.8)
# 定义项目名称（应与package.xml中的<name>一致）
project(cyy_slamtoolbox)

# 如果未设置，默认使用C++17标准
if(NOT CMAKE_CXX_STANDARD)
  set(CMAKE_CXX_STANDARD 17)
endif()

# 查找编译依赖
find_package(ament_cmake REQUIRED)
# 查找slam_toolbox包
find_package(slam_toolbox REQUIRED)
# 查找其他可能的依赖，如传感器消息、几何库等
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(tf2 REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(geometry_msgs REQUIRED)

# 消息输出，用于调试
message(STATUS "开始配置项目: ${PROJECT_NAME}")

# 包含头文件目录
include_directories(
  include
  ${ament_INCLUDE_DIRS}
)

# 如果有自定义的C++节点源文件，在此添加可执行文件
# 例如，如果您有自定义的SLAM处理节点：
# add_executable(origincar_slam_node src/origincar_slam_node.cpp)
# ament_target_dependencies(origincar_slam_node 
#   rclcpp std_msgs sensor_msgs nav_msgs tf2 tf2_ros geometry_msgs slam_toolbox)
# 
# 安装目标（将可执行文件安装到lib/<package_name>）
# install(TARGETS origincar_slam_node
#   DESTINATION lib/${PROJECT_NAME})

# 安装launch文件到share/<package_name>/launch目录
install(DIRECTORY launch
  DESTINATION share/${PROJECT_NAME}
  PATTERN "*.py"
)

# 安装配置文件（如YAML参数文件）到share/<package_name>/config目录
install(DIRECTORY config
  DESTINATION share/${PROJECT_NAME}
  PATTERN "*.yaml"
  PATTERN "*.yml"
)


# 声明ament包依赖关系（确保在package.xml中已声明这些依赖）
ament_export_dependencies(slam_toolbox rclcpp std_msgs sensor_msgs nav_msgs tf2 tf2_ros geometry_msgs)

# 必须调用此函数来生成必要的CMake配置
ament_package()