| 1 | cmake_minimum_required(VERSION 2.8.3) |
|---|
| 2 | project(shared_serial) |
|---|
| 3 | |
|---|
| 4 | ## Find catkin macros and libraries |
|---|
| 5 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) |
|---|
| 6 | ## is used, also find other catkin packages |
|---|
| 7 | find_package(catkin REQUIRED COMPONENTS roscpp message_generation) |
|---|
| 8 | |
|---|
| 9 | ####################################### |
|---|
| 10 | ## Declare ROS messages and services ## |
|---|
| 11 | ####################################### |
|---|
| 12 | |
|---|
| 13 | ## Generate messages in the 'msg' folder |
|---|
| 14 | add_message_files( |
|---|
| 15 | DIRECTORY msg |
|---|
| 16 | ) |
|---|
| 17 | |
|---|
| 18 | ## Generate services in the 'srv' folder |
|---|
| 19 | add_service_files( |
|---|
| 20 | DIRECTORY srv |
|---|
| 21 | ) |
|---|
| 22 | |
|---|
| 23 | ## Generate added messages and services with any dependencies listed here |
|---|
| 24 | generate_messages() |
|---|
| 25 | |
|---|
| 26 | ################################### |
|---|
| 27 | ## catkin specific configuration ## |
|---|
| 28 | ################################### |
|---|
| 29 | ## The catkin_package macro generates cmake config files for your package |
|---|
| 30 | ## Declare things to be passed to dependent projects |
|---|
| 31 | ## INCLUDE_DIRS: uncomment this if you package contains header files |
|---|
| 32 | ## LIBRARIES: libraries you create in this project that dependent projects also need |
|---|
| 33 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need |
|---|
| 34 | ## DEPENDS: system dependencies of this project that dependent projects also need |
|---|
| 35 | catkin_package( |
|---|
| 36 | INCLUDE_DIRS include |
|---|
| 37 | LIBRARIES ${PROJECT_NAME} |
|---|
| 38 | CATKIN_DEPENDS roscpp message_runtime |
|---|
| 39 | ) |
|---|
| 40 | |
|---|
| 41 | ########### |
|---|
| 42 | ## Build ## |
|---|
| 43 | ########### |
|---|
| 44 | |
|---|
| 45 | ## Specify additional locations of header files |
|---|
| 46 | ## Your package locations should be listed before other locations |
|---|
| 47 | # include_directories(include) |
|---|
| 48 | include_directories( |
|---|
| 49 | include ${catkin_INCLUDE_DIRS} |
|---|
| 50 | ) |
|---|
| 51 | |
|---|
| 52 | ## Declare a cpp library |
|---|
| 53 | add_library(${PROJECT_NAME} |
|---|
| 54 | src/client.cpp |
|---|
| 55 | ) |
|---|
| 56 | |
|---|
| 57 | ## Declare a cpp executable |
|---|
| 58 | add_executable(server src/server.cpp src/watchdog.cpp src/LxSerial.cpp) |
|---|
| 59 | |
|---|
| 60 | ## Add cmake target dependencies of the executable/library |
|---|
| 61 | ## as an example, message headers may need to be generated before nodes |
|---|
| 62 | add_dependencies(${PROJECT_NAME} shared_serial_generate_messages_cpp) |
|---|
| 63 | add_dependencies(server shared_serial_generate_messages_cpp) |
|---|
| 64 | |
|---|
| 65 | target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES}) |
|---|
| 66 | target_link_libraries(server ${catkin_LIBRARIES} pthread) |
|---|
| 67 | |
|---|
| 68 | ############# |
|---|
| 69 | ## Install ## |
|---|
| 70 | ############# |
|---|
| 71 | |
|---|
| 72 | ## Mark executables and/or libraries for installation |
|---|
| 73 | install(TARGETS ${PROJECT_NAME} server |
|---|
| 74 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} |
|---|
| 75 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} |
|---|
| 76 | RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} |
|---|
| 77 | ) |
|---|
| 78 | |
|---|
| 79 | ## Mark cpp header files for installation |
|---|
| 80 | install(FILES include/${PROJECT_NAME}/client.h |
|---|
| 81 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} |
|---|
| 82 | ) |
|---|