cmake_minimum_required(VERSION 2.8.3) project(lex_node) ## Compile as C++11, supported in ROS Kinetic and newer set(CMAKE_CXX_STANDARD 11) find_package(catkin REQUIRED COMPONENTS roscpp std_msgs aws_common aws_ros1_common lex_common_msgs lex_common ) if(AWSSDK_FOUND) set(SERVICE lex) AWSSDK_DETERMINE_LIBS_TO_LINK(SERVICE OUTPUT) link_directories("${AWSSDK_LIB_DIR}") endif() add_definitions(-DUSE_IMPORT_EXPORT) set(LEX_LIBRARY_TARGET ${PROJECT_NAME}_lib) catkin_package( INCLUDE_DIRS include LIBRARIES ${LEX_LIBRARY_TARGET} CATKIN_DEPENDS roscpp std_msgs lex_common_msgs aws_ros1_common ) ########### ## Build ## ########### ## Specify additional locations of header files ## Your package locations should be listed before other locations include_directories( include ${catkin_INCLUDE_DIRS} ${AWSSDK_INCLUDE_DIR} ${lex_common_INCLUDE_DIR} ) add_library(${LEX_LIBRARY_TARGET} src/lex_node.cpp ) target_link_libraries(${LEX_LIBRARY_TARGET} ${aws_common_LIBRARIES} ${lex_common_LIBRARIES} ${catkin_LIBRARIES} ${OUTPUT} ) add_executable(${PROJECT_NAME} src/main.cpp) target_link_libraries(${PROJECT_NAME} ${LEX_LIBRARY_TARGET}) add_dependencies(${LEX_LIBRARY_TARGET} ${catkin_EXPORTED_TARGETS}) ############# ## Install ## ############# ## Mark executables and/or libraries for installation install(TARGETS ${PROJECT_NAME} ${LEX_LIBRARY_TARGET} ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) ## Mark cpp header files for installation install( DIRECTORY include/ DESTINATION include FILES_MATCHING PATTERN "*.h" ) ## Mark other files for installation (e.g. launch and bag files, etc.) install(DIRECTORY launch/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch) install(DIRECTORY config/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config) ############# ## Testing ## ############# if(CATKIN_ENABLE_TESTING) find_package(rostest REQUIRED) find_package(GMock QUIET) if(GMOCK_FOUND) add_rostest_gmock(test_lex_node test/test_lex_node.test test/lex_node_test.cpp ) target_include_directories(test_lex_node PRIVATE include ${catkin_INCLUDE_DIRS} ${GMOCK_INCLUDE_DIRS} ) target_link_libraries(test_lex_node ${PROJECT_NAME}_lib ${catkin_LIBRARIES} ${GMOCK_BOTH_LIBRARIES} ) else() include_directories(/usr/include/gmock /usr/src/gmock) add_library(${PROJECT_NAME}_libgmock SHARED /usr/src/gmock/src/gmock-all.cc) add_rostest_gtest(test_lex_node test/test_lex_node.test test/lex_node_test.cpp ) target_include_directories(test_lex_node PRIVATE include ${catkin_INCLUDE_DIRS} ) target_link_libraries(test_lex_node ${PROJECT_NAME}_lib ${catkin_LIBRARIES} ${PROJECT_NAME}_libgmock ) endif() endif()