152 lines
3.7 KiB
CMake
152 lines
3.7 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(yushu_leida)
|
|
|
|
# 设置C++标准
|
|
set(CMAKE_CXX_STANDARD 14)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# 查找PCL
|
|
find_package(PCL REQUIRED)
|
|
|
|
# 查找yaml-cpp
|
|
find_package(yaml-cpp REQUIRED)
|
|
|
|
# 设置Unitree SDK路径
|
|
set(UNITREE_SDK_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/unilidar_sdk-main/unilidar_sdk-main/unitree_lidar_sdk")
|
|
|
|
# 检查路径是否存在
|
|
if(NOT EXISTS "${UNITREE_SDK_ROOT}")
|
|
message(FATAL_ERROR "Unitree SDK not found at: ${UNITREE_SDK_ROOT}")
|
|
endif()
|
|
|
|
# 检测系统架构
|
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64")
|
|
set(ARCH_DIR "x86_64")
|
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64")
|
|
set(ARCH_DIR "aarch64")
|
|
else()
|
|
message(FATAL_ERROR "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}")
|
|
endif()
|
|
|
|
# 设置库路径
|
|
set(UNITREE_LIB_DIR "${UNITREE_SDK_ROOT}/lib/${ARCH_DIR}")
|
|
set(UNITREE_LIB_PATH "${UNITREE_LIB_DIR}/libunitree_lidar_sdk.a")
|
|
|
|
# 检查库文件是否存在
|
|
if(NOT EXISTS "${UNITREE_LIB_PATH}")
|
|
message(FATAL_ERROR "Unitree library not found at: ${UNITREE_LIB_PATH}")
|
|
endif()
|
|
|
|
# 先定义可执行文件目标
|
|
# 原版程序
|
|
add_executable(yushu_leida
|
|
src/main.cpp
|
|
src/unitree_driver.cpp # 只包含真实驱动
|
|
# 不包含 src/ubuntu_simulator_driver.cpp
|
|
)
|
|
|
|
# 修复版程序 - 包含连续预警系统
|
|
add_executable(yushu_leida_fixed
|
|
src/main.cpp
|
|
src/unitree_driver.cpp
|
|
)
|
|
|
|
# 雷达数据调试工具
|
|
add_executable(debug_radar_real_data
|
|
debug_radar_real_data.cpp
|
|
src/unitree_driver.cpp
|
|
)
|
|
|
|
|
|
|
|
# 改进版程序 - 基于参考项目优化
|
|
add_executable(yushu_leida_improved
|
|
src/main_improved.cpp
|
|
src/unitree_driver.cpp
|
|
)
|
|
|
|
|
|
|
|
# 添加增强图形界面版本
|
|
add_executable(yushu_leida_enhanced_gui
|
|
src/main_improved.cpp
|
|
src/unitree_driver.cpp
|
|
# src/enhanced_ui_display.cpp # 移除这行,因为文件不存在
|
|
)
|
|
|
|
# 设置包含目录
|
|
target_include_directories(yushu_leida_enhanced_gui PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${UNITREE_SDK_ROOT}/include
|
|
${PCL_INCLUDE_DIRS}
|
|
)
|
|
|
|
# 链接库
|
|
target_link_libraries(yushu_leida_enhanced_gui
|
|
${UNITREE_LIB_PATH}
|
|
${PCL_LIBRARIES}
|
|
yaml-cpp
|
|
pthread
|
|
)
|
|
|
|
# 添加编译定义
|
|
target_compile_definitions(yushu_leida_enhanced_gui PRIVATE
|
|
${PCL_DEFINITIONS}
|
|
)
|
|
target_include_directories(yushu_leida PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${UNITREE_SDK_ROOT}/include
|
|
${PCL_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_include_directories(yushu_leida_improved PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${UNITREE_SDK_ROOT}/include
|
|
${PCL_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_include_directories(yushu_leida_fixed PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${UNITREE_SDK_ROOT}/include
|
|
${PCL_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_include_directories(debug_radar_real_data PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${UNITREE_SDK_ROOT}/include
|
|
${PCL_INCLUDE_DIRS}
|
|
)
|
|
|
|
# 链接库
|
|
target_link_libraries(yushu_leida
|
|
${UNITREE_LIB_PATH} # 直接使用静态库的完整路径
|
|
${PCL_LIBRARIES}
|
|
yaml-cpp
|
|
pthread
|
|
)
|
|
|
|
target_link_libraries(yushu_leida_improved
|
|
${UNITREE_LIB_PATH} # 直接使用静态库的完整路径
|
|
${PCL_LIBRARIES}
|
|
yaml-cpp
|
|
pthread
|
|
)
|
|
|
|
target_link_libraries(yushu_leida_fixed
|
|
${UNITREE_LIB_PATH} # 直接使用静态库的完整路径
|
|
${PCL_LIBRARIES}
|
|
yaml-cpp
|
|
pthread
|
|
)
|
|
|
|
target_link_libraries(debug_radar_real_data
|
|
${UNITREE_LIB_PATH} # 直接使用静态库的完整路径
|
|
${PCL_LIBRARIES}
|
|
yaml-cpp
|
|
pthread
|
|
)
|
|
|
|
# 设置PCL编译定义
|
|
target_compile_definitions(yushu_leida PRIVATE ${PCL_DEFINITIONS})
|
|
target_compile_definitions(yushu_leida_improved PRIVATE ${PCL_DEFINITIONS})
|
|
target_compile_definitions(yushu_leida_fixed PRIVATE ${PCL_DEFINITIONS}) |