-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
178 lines (147 loc) · 4.98 KB
/
Copy pathCMakeLists.txt
File metadata and controls
178 lines (147 loc) · 4.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
cmake_minimum_required(VERSION 3.5)
project(sonar_image_proc)
if(FIPS_CONFIG AND NOT FIPS_IMPORT)
cmake_minimum_required(VERSION 3.5)
get_filename_component(FIPS_ROOT_DIR "../fips" ABSOLUTE)
include("${FIPS_ROOT_DIR}/cmake/fips.cmake")
fips_setup()
else()
find_package(catkin QUIET)
endif()
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
# find_package(Eigen3 REQUIRED )
find_package(Boost COMPONENTS filesystem system program_options REQUIRED)
# # Default OpenCV version
list(APPEND OPENCV_COMPONENTS core highgui imgproc)
find_package(OpenCV COMPONENTS ${OPENCV_COMPONENTS} REQUIRED)
if(FIPS_CONFIG)
# # Set global include paths
fips_include_directories(
${CMAKE_SOURCE_DIR}/include
${OpenCV_INCLUDE_DIRS}
)
# The local library
fips_begin_module(sonar_image_proc)
fips_src(lib *.cpp)
fips_libs(${Boost_LIBRARIES} ${OpenCV_LIBS})
fips_end_module()
if(NOT FIPS_IMPORT)
if(FIPS_UNITTESTS)
gtest_begin(sonar_image_proc)
fips_src(test/unit/)
fips_deps(sonar_image_proc)
gtest_end()
endif()
endif()
fips_finish()
else()
find_package(catkin REQUIRED
marine_acoustic_msgs
cv_bridge
image_transport
nodelet
nodelet_topic_tools
OpenCV
rosbag_storage
dynamic_reconfigure
)
catkin_python_setup()
# This needs to come after `catkin_python_setup` and before `catkin_package`
generate_dynamic_reconfigure_options(
ros/cfg/DrawSonar.cfg
)
catkin_package(
INCLUDE_DIRS include/ ros/include/
LIBRARIES sonar_image_proc
DEPENDS OpenCV
# CATKIN_DEPENDS
)
include_directories(
include/
ros/include/
${catkin_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
)
set(sonar_image_proc_SRCS
lib/AbstractSonarInterface.cpp
lib/ColorMaps.cpp
lib/SonarDrawer.cpp
lib/OldDrawSonar.cpp
lib/HistogramGenerator.cpp
)
# "true" library containing core functionality
add_library(sonar_image_proc ${sonar_image_proc_SRCS})
target_link_libraries(sonar_image_proc ${catkin_LIBRARIES})
set_property(TARGET sonar_image_proc PROPERTY CXX_STANDARD 14)
add_dependencies(sonar_image_proc ${PROJECT_NAME}_gencfg)
# Dynamically loadable libraries containing nodelets
add_library(sonar_image_proc_nodelets
ros/src/draw_sonar_nodelet.cpp
ros/src/sonar_postprocessor_nodelet.cpp)
target_link_libraries(sonar_image_proc_nodelets ${catkin_LIBRARIES} sonar_image_proc)
set_property(TARGET sonar_image_proc_nodelets PROPERTY CXX_STANDARD 14)
# # Standalone nodes
add_executable(draw_sonar_node ros/src/draw_sonar_node.cpp)
target_link_libraries(draw_sonar_node
sonar_image_proc
${catkin_LIBRARIES})
add_dependencies(draw_sonar_node ${catkin_EXPORTED_TARGETS})
set_property(TARGET draw_sonar_node PROPERTY CXX_STANDARD 14)
add_executable(sonar_postprocessor_node ros/src/sonar_postprocessor_node.cpp)
target_link_libraries(sonar_postprocessor_node
sonar_image_proc
${catkin_LIBRARIES})
add_dependencies(sonar_postprocessor_node ${catkin_EXPORTED_TARGETS})
set_property(TARGET sonar_postprocessor_node PROPERTY CXX_STANDARD 14)
# bag2sonar is **not** a conventional ROS node, but a standalone
# executable which uses ros_storage to read ros bags
add_executable(bag2sonar ros/tools/bag2sonar.cpp)
target_link_libraries(bag2sonar
sonar_image_proc
${catkin_LIBRARIES})
add_dependencies(bag2sonar ${catkin_EXPORTED_TARGETS})
set_property(TARGET bag2sonar PROPERTY CXX_STANDARD 14)
install(TARGETS draw_sonar_node
sonar_postprocessor_node
bag2sonar
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
install(TARGETS
sonar_image_proc_nodelets
sonar_image_proc
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION})
install(DIRECTORY launch/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch)
# install( DIRECTORY rqt_config/
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/rqt_config )
install(FILES nodelet_plugins.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
# # Install headers
install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
PATTERN ".git" EXCLUDE)
install(DIRECTORY ros/include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
PATTERN ".git" EXCLUDE)
# Install python scripts and modules
catkin_install_python(PROGRAMS
scripts/sonar_pointcloud.py
scripts/sonar_fov.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
# # Disable python wrapper for now ...
#
# # == Stuff related to the Python wrapper ==
# pybind_add_module(py_draw_sonar SHARED
# python/py_draw_sonar.cpp
# python/ndarray_converter.cpp
# lib/DrawSonar.cpp
# lib/DataStructures.cpp
# lib/ColorMaps.cpp
# )
# target_link_libraries( py_draw_sonar ${OpenCV_LIBS} draw_sonar )
#
# install(TARGETS py_draw_sonar
# DESTINATION ${CATKIN_GLOBAL_PYTHON_DESTINATION} ) #${CATKIN_PACKAGE_PYTHON_DESTINATION})
endif()