Files
mir_amr/navigations/pluginlib/CMakeLists.txt
2026-05-28 10:29:58 +07:00

44 lines
1.6 KiB
CMake
Executable File

cmake_minimum_required(VERSION 3.0.2)
project(pluginlib)
find_package(catkin REQUIRED COMPONENTS class_loader rosconsole roslib cmake_modules)
find_package(Boost REQUIRED COMPONENTS filesystem)
find_package(TinyXML2 REQUIRED)
catkin_package(
INCLUDE_DIRS include
CATKIN_DEPENDS class_loader rosconsole roslib
DEPENDS Boost TinyXML2
)
if(CATKIN_ENABLE_TESTING)
include_directories(include ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${TinyXML2_INCLUDE_DIRS})
add_library(test_plugins EXCLUDE_FROM_ALL SHARED test/test_plugins.cpp)
target_link_libraries(test_plugins ${class_loader_LIBRARIES})
catkin_add_gtest(${PROJECT_NAME}_utest test/utest.cpp)
if(TARGET ${PROJECT_NAME}_utest)
target_link_libraries(${PROJECT_NAME}_utest ${TinyXML2_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES})
add_dependencies(${PROJECT_NAME}_utest test_plugins)
endif()
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-std=c++11" COMPILER_SUPPORTS_CXX11)
if(COMPILER_SUPPORTS_CXX11)
catkin_add_gtest(${PROJECT_NAME}_unique_ptr_test test/unique_ptr_test.cpp)
if(TARGET ${PROJECT_NAME}_unique_ptr_test)
target_link_libraries(${PROJECT_NAME}_unique_ptr_test ${TinyXML2_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES})
set_target_properties(${PROJECT_NAME}_unique_ptr_test PROPERTIES COMPILE_FLAGS -std=c++11 LINK_FLAGS -std=c++11)
add_dependencies(${PROJECT_NAME}_unique_ptr_test test_plugins)
endif()
endif()
endif()
install(DIRECTORY include/pluginlib/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION})
install(PROGRAMS scripts/pluginlib_headers_migration.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})