98 lines
2.0 KiB
CMake
98 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
|
|
project(m20_sdk_deploy)
|
|
|
|
# 设置C++标准
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# 默认构建类型
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE Release)
|
|
endif()
|
|
# 警告忽略和编译选项
|
|
add_definitions(-w)
|
|
add_compile_options(-fPIC)
|
|
|
|
# 配置选项
|
|
set(BUILD_PLATFORM "x86" CACHE STRING "Target platform (x86 or arm)")
|
|
|
|
if(BUILD_PLATFORM STREQUAL "arm")
|
|
set(CMAKE_C_COMPILER "aarch64-linux-gnu-gcc")
|
|
set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")
|
|
endif()
|
|
|
|
# 查找依赖包
|
|
find_package(ament_cmake REQUIRED)
|
|
find_package(rclcpp REQUIRED)
|
|
find_package(drdds REQUIRED)
|
|
|
|
set(THIRD_PARTY ${CMAKE_CURRENT_SOURCE_DIR}/third_party)
|
|
|
|
include_directories(
|
|
include/types
|
|
include/utils
|
|
interface/robot
|
|
interface/user_command
|
|
interface/network
|
|
state_machine
|
|
run_policy
|
|
${THIRD_PARTY}/eigen/
|
|
${THIRD_PARTY}/gamepad/include
|
|
${THIRD_PARTY}/onnxruntime/${BUILD_PLATFORM}/include
|
|
)
|
|
|
|
# 子目录
|
|
add_subdirectory(interface)
|
|
|
|
# Keep the default RUNPATH behavior so a correctly sourced ROS environment can
|
|
# override stale build-machine library paths when necessary.
|
|
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
|
|
|
|
set(CMAKE_INSTALL_RPATH
|
|
${THIRD_PARTY}/onnxruntime/${BUILD_PLATFORM}/lib/
|
|
../lib/onnxruntime/
|
|
)
|
|
|
|
file(GLOB_RECURSE STATE_MACHINE_SRC "state_machine/*.c*")
|
|
|
|
add_executable(rl_deploy main.cpp ${STATE_MACHINE_SRC})
|
|
|
|
add_library(onnxruntime SHARED IMPORTED)
|
|
set_target_properties(onnxruntime PROPERTIES IMPORTED_LOCATION "${THIRD_PARTY}/onnxruntime//${BUILD_PLATFORM}/lib/libonnxruntime.so")
|
|
|
|
ament_target_dependencies(rl_deploy
|
|
rclcpp
|
|
drdds
|
|
)
|
|
if(BUILD_PLATFORM STREQUAL "arm")
|
|
target_link_libraries(rl_deploy
|
|
interface
|
|
onnxruntime
|
|
-lpthread
|
|
-lm
|
|
-lrt
|
|
-ldl
|
|
-lstdc++
|
|
)
|
|
else()
|
|
target_link_libraries(rl_deploy
|
|
interface
|
|
onnxruntime
|
|
-lpthread
|
|
-lm
|
|
-lrt
|
|
-ldl
|
|
-lstdc++
|
|
)
|
|
endif()
|
|
|
|
|
|
install(TARGETS rl_deploy
|
|
DESTINATION lib/${PROJECT_NAME}
|
|
)
|
|
|
|
ament_package()
|