Files
dreamDeckAutopilot/sensors/ros_canopen-melodic/canopen_master/CMakeLists.txt
T
2026-07-27 13:51:19 +08:00

98 lines
1.8 KiB
CMake

cmake_minimum_required(VERSION 3.0.2)
project(canopen_master)
find_package(catkin REQUIRED
COMPONENTS
class_loader
socketcan_interface
)
find_package(Boost REQUIRED
COMPONENTS
atomic
chrono
thread
)
catkin_package(
INCLUDE_DIRS
include
LIBRARIES
${PROJECT_NAME}
CATKIN_DEPENDS
socketcan_interface
DEPENDS
Boost
)
include_directories(include ${catkin_INCLUDE_DIRS})
add_library(${PROJECT_NAME}
src/emcy.cpp
src/node.cpp
src/objdict.cpp
src/pdo.cpp
src/sdo.cpp
)
target_link_libraries(${PROJECT_NAME}
${catkin_LIBRARIES}
${Boost_LIBRARIES}
)
add_library(${PROJECT_NAME}_plugin
src/master_plugin.cpp
)
target_link_libraries(${PROJECT_NAME}_plugin
${catkin_LIBRARIES}
${Boost_LIBRARIES}
${PROJECT_NAME}
)
# canopen_bcm_sync
add_executable(canopen_bcm_sync
src/bcm_sync.cpp
)
target_link_libraries(canopen_bcm_sync
${Boost_LIBRARIES}
${catkin_LIBRARIES}
)
install(
TARGETS
canopen_bcm_sync
${PROJECT_NAME}
${PROJECT_NAME}_plugin
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
install(
DIRECTORY
include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.h"
)
install(
FILES
master_plugin.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
if(CATKIN_ENABLE_TESTING)
catkin_add_gtest(${PROJECT_NAME}-test_parser
test/test_parser.cpp
)
target_link_libraries(${PROJECT_NAME}-test_parser
${PROJECT_NAME}
)
catkin_add_gtest(${PROJECT_NAME}-test_node
test/test_node.cpp
)
target_link_libraries(${PROJECT_NAME}-test_node
${PROJECT_NAME}
)
endif()