cmvr-es/cmvr-es/controller/CMakeLists.txt
2026-02-27 16:31:37 +08:00

86 lines
2.1 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#find_package(VISP REQUIRED)
# 如果报 relocation ... can not be used when making a shared object; recompile with -fPIC 说明SRC 中包含了test文件 test
# 中链接 -lgtest -lgtest_main ,这是静态库,导致 libcontroller.so 被迫依赖 gtest。
# 所以 add_library(controller SHARED
# src/controller_creator.cpp
# src/pid_controller.cpp
# ❌ 不要把 src/controller_test.cpp 放进来
#) 其他动态库类似
file(GLOB SRC
${CMAKE_CURRENT_SOURCE_DIR}/src/pid_controller.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/ibvs_controller.cpp
)
add_library(controller SHARED ${SRC})
target_include_directories(controller PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(controller PUBLIC
protobuf
cmvr_es::ik_solver
cmvr_es::device::humanoid_robot
gtest
gtest_main
pthread
glog
cmvr_es::proto
ccd
fcl
cmvr_es::device_manager
visp_vs
visp_visual_features
visp_vision
visp_tt_mi
visp_tt
visp_me
visp_mbt
visp_klt
visp_dnn_tracker
visp_blob
visp_sensor
visp_robot
visp_io
visp_imgproc
visp_gui
visp_detection
visp_core
visp_ar
pinocchio_default
pinocchio_parsers
)
add_library(cmvr_es::controller ALIAS controller)
install(TARGETS controller LIBRARY DESTINATION lib)
# --------------------------------------------------------
# Unit test
# --------------------------------------------------------
find_package(realsense2 REQUIRED)
add_executable(controller_test
${CMAKE_CURRENT_SOURCE_DIR}/src/controller_test.cpp
)
target_link_libraries(controller_test
PRIVATE
cmvr_es::utils
cmvr_es::ik_solver
cmvr_es::planner
cmvr_es::proto
cmvr_es::mujoco_viewer
cmvr_es::controller
cmvr_es::device::mujoco_camera
gtest
gtest_main
pthread
glog
${VISP_LIBRARIES}
realsense2::realsense2
)