CMakeLists: Require OpenCV
[ros_wild_thumper.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.8.3)
2 project(wild_thumper)
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 sensor_msgs cv_bridge roscpp rospy std_msgs image_transport dynamic_reconfigure message_generation)
8 find_package(OpenCV)
9
10 ## System dependencies are found with CMake's conventions
11 # find_package(Boost REQUIRED COMPONENTS system)
12
13
14 ## Uncomment this if the package has a setup.py. This macro ensures
15 ## modules and global scripts declared therein get installed
16 ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
17 catkin_python_setup()
18
19 ################################################
20 ## Declare ROS messages, services and actions ##
21 ################################################
22
23 ## To declare and build messages, services or actions from within this
24 ## package, follow these steps:
25 ## * Let MSG_DEP_SET be the set of packages whose message types you use in
26 ##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
27 ## * In the file package.xml:
28 ##   * add a build_depend and a run_depend tag for each package in MSG_DEP_SET
29 ##   * If MSG_DEP_SET isn't empty the following dependencies might have been
30 ##     pulled in transitively but can be declared for certainty nonetheless:
31 ##     * add a build_depend tag for "message_generation"
32 ##     * add a run_depend tag for "message_runtime"
33 ## * In this file (CMakeLists.txt):
34 ##   * add "message_generation" and every package in MSG_DEP_SET to
35 ##     find_package(catkin REQUIRED COMPONENTS ...)
36 ##   * add "message_runtime" and every package in MSG_DEP_SET to
37 ##     catkin_package(CATKIN_DEPENDS ...)
38 ##   * uncomment the add_*_files sections below as needed
39 ##     and list every .msg/.srv/.action file to be processed
40 ##   * uncomment the generate_messages entry below
41 ##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
42
43 ## Generate messages in the 'msg' folder
44 add_message_files(
45   FILES
46   LedStripe.msg
47   Led.msg
48   Sensor.msg
49 )
50
51 ## Generate services in the 'srv' folder
52 add_service_files(
53   FILES
54   DWM1000Center.srv
55 )
56
57 ## Generate actions in the 'action' folder
58 # add_action_files(
59 #   FILES
60 #   Action1.action
61 #   Action2.action
62 # )
63
64 ## Generate added messages and services with any dependencies listed here
65 generate_messages(
66   DEPENDENCIES
67   std_msgs  # Or other packages containing msgs
68 )
69
70 generate_dynamic_reconfigure_options(
71   config/path_following.cfg
72   config/wt_node.cfg
73 )
74
75 ###################################
76 ## catkin specific configuration ##
77 ###################################
78 ## The catkin_package macro generates cmake config files for your package
79 ## Declare things to be passed to dependent projects
80 ## INCLUDE_DIRS: uncomment this if you package contains header files
81 ## LIBRARIES: libraries you create in this project that dependent projects also need
82 ## CATKIN_DEPENDS: catkin_packages dependent projects also need
83 ## DEPENDS: system dependencies of this project that dependent projects also need
84 catkin_package(
85 #  INCLUDE_DIRS include
86 #  LIBRARIES wild_thumper
87 #   CATKIN_DEPENDS sensor_msgs
88 #  DEPENDS system_lib
89    CATKIN_DEPENDS message_runtime
90 )
91
92 ###########
93 ## Build ##
94 ###########
95
96 ## Specify additional locations of header files
97 ## Your package locations should be listed before other locations
98 include_directories(
99     ${catkin_INCLUDE_DIRS}
100 )
101
102 ## Declare a cpp library
103 # add_library(wild_thumper
104 #   src/${PROJECT_NAME}/wild_thumper.cpp
105 # )
106
107 ## Declare a cpp executable
108 add_executable(path_following src/path_following.cpp)
109
110 ## Add cmake target dependencies of the executable/library
111 ## as an example, message headers may need to be generated before nodes
112 add_dependencies(path_following ${PROJECT_NAME}_gencfg)
113
114 ## Specify libraries to link a library or executable target against
115 target_link_libraries(path_following
116    ${catkin_LIBRARIES}
117    ${OpenCV_LIBS}
118 )
119
120 #############
121 ## Install ##
122 #############
123
124 # all install targets should use catkin DESTINATION variables
125 # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
126
127 ## Mark executable scripts (Python etc.) for installation
128 ## in contrast to setup.py, you can choose the destination
129 # install(PROGRAMS
130 #   scripts/my_python_script
131 #   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
132 # )
133
134 ## Mark executables and/or libraries for installation
135 # install(TARGETS wild_thumper wild_thumper_node
136 #   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
137 #   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
138 #   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
139 # )
140
141 ## Mark cpp header files for installation
142 # install(DIRECTORY include/${PROJECT_NAME}/
143 #   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
144 #   FILES_MATCHING PATTERN "*.h"
145 #   PATTERN ".svn" EXCLUDE
146 # )
147
148 ## Mark other files for installation (e.g. launch and bag files, etc.)
149 # install(FILES
150 #   # myfile1
151 #   # myfile2
152 #   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
153 # )
154
155 #############
156 ## Testing ##
157 #############
158
159 ## Add gtest based cpp test target and link libraries
160 # catkin_add_gtest(${PROJECT_NAME}-test test/test_wild_thumper.cpp)
161 # if(TARGET ${PROJECT_NAME}-test)
162 #   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
163 # endif()
164
165 ## Add folders to be run by python nosetests
166 # catkin_add_nosetests(test)