6
6
#add_definitions( -DRTT_COMPONENT )
7
7
endif ()
8
8
9
- include (AddFileDependencies)
10
-
11
9
# mqueue transport
12
10
OPTION (ENABLE_MQ "Build posix message queue transport plugin for ${_package} " OFF )
13
11
if (ENABLE_MQ)
@@ -131,7 +129,7 @@ foreach( FILE ${MSG_FILES} )
131
129
132
130
# Necessary for create_boost_header.py command below
133
131
set (_ROSMSG_GENERATED_BOOST_HEADER "${rtt_roscomm_GENERATED_HEADERS_OUTPUT_DIRECTORY} /orocos/${ROSMSGBOOSTHEADER} " )
134
- list (APPEND ROSMSGS_GENERATED_BOOST_HEADERS ${_ROSMSG_GENERATED_BOOST_HEADER} )
132
+ list (APPEND ${_package} _GENERATED_BOOST_HEADERS ${_ROSMSG_GENERATED_BOOST_HEADER} )
135
133
136
134
add_custom_command (
137
135
OUTPUT ${_ROSMSG_GENERATED_BOOST_HEADER}
@@ -140,22 +138,18 @@ foreach( FILE ${MSG_FILES} )
140
138
DEPENDS ${FILE} ${${_package} _EXPORTED_TARGETS} ${CREATE_BOOST_HEADER_EXE_PATH}
141
139
VERBATIM )
142
140
143
- #set_source_files_properties(${ROSMSGS_GENERATED_BOOST_HEADERS} PROPERTIES GENERATED TRUE)
144
-
145
141
# Message-specific typekit module
146
142
configure_file (
147
143
ros_msg_typekit_plugin.cpp.in
148
144
${CMAKE_CURRENT_BINARY_DIR} /ros_${ROSMSGNAME} _typekit_plugin.cpp @ONLY )
149
145
list (APPEND rtt-${_package} -typekit_SOURCES ${CMAKE_CURRENT_BINARY_DIR} /ros_${ROSMSGNAME} _typekit_plugin.cpp )
150
- add_file_dependencies( ${CMAKE_CURRENT_BINARY_DIR} /ros_${ROSMSGNAME} _typekit.cpp ${FILE} )
151
146
152
147
# Conversion header for CORBA
153
148
if (ENABLE_CORBA)
154
149
configure_file (
155
150
ros_msg_corba_conversion.hpp.in
156
151
${CMAKE_CURRENT_BINARY_DIR} /ros_${ROSMSGNAME} _corba_conversion.hpp @ONLY )
157
152
list (APPEND rtt-${_package} -ros-transport-corba_SOURCES ${CMAKE_CURRENT_BINARY_DIR} /ros_${ROSMSGNAME} _corba_conversion.hpp )
158
- add_file_dependencies( ${CMAKE_CURRENT_BINARY_DIR} /ros_${ROSMSGNAME} _corba_conversion.hpp ${FILE} )
159
153
endif ()
160
154
161
155
# Types.hpp helper for extern templates
@@ -208,21 +202,28 @@ include_directories(
208
202
if (NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "Release" )
209
203
set (CMAKE_BUILD_TYPE MinSizeRel)
210
204
endif ()
205
+ add_custom_target (rtt-${_package} -generate_boost_headers
206
+ DEPENDS ${${_package} _GENERATED_BOOST_HEADERS}
207
+ )
211
208
orocos_typekit(rtt-${_package} -typekit ${rtt-${_package} -typekit_SOURCES})
212
209
target_link_libraries (rtt-${_package} -typekit ${catkin_LIBRARIES} ${${_package} _LIBRARIES} ${USE_OROCOS_LIBRARIES} )
210
+ add_dependencies (rtt-${_package} -typekit rtt-${_package} -generate_boost_headers)
213
211
orocos_typekit(rtt-${_package} -ros-transport ${rtt-${_package} -ros-transport_SOURCES})
214
212
target_link_libraries (rtt-${_package} -ros-transport ${catkin_LIBRARIES} ${${_package} _LIBRARIES} ${USE_OROCOS_LIBRARIES} )
213
+ add_dependencies (rtt-${_package} -ros-transport rtt-${_package} -generate_boost_headers)
215
214
216
215
# Build mqueue transport plugin
217
216
if (ENABLE_MQ)
218
217
orocos_typekit(rtt-${_package} -ros-transport-mqueue ${rtt-${_package} -ros-transport-mqueue_SOURCES})
219
218
target_link_libraries (rtt-${_package} -ros-transport-mqueue ${catkin_LIBRARIES} ${${_package} _LIBRARIES} ${USE_OROCOS_LIBRARIES} ${OROCOS-RTT_MQUEUE_LIBRARIES})
219
+ add_dependencies (rtt-${_package} -ros-transport-mqueue rtt-${_package} -generate_boost_headers)
220
220
endif ()
221
221
222
222
# Build corba transport plugin
223
223
if (ENABLE_CORBA)
224
224
orocos_typekit(rtt-${_package} -ros-transport-corba ${rtt-${_package} -ros-transport-corba_SOURCES})
225
225
target_link_libraries (rtt-${_package} -ros-transport-corba ${catkin_LIBRARIES} ${${_package} _LIBRARIES} ${USE_OROCOS_LIBRARIES} ${OROCOS-RTT_CORBA_LIBRARIES})
226
+ add_dependencies (rtt-${_package} -ros-transport-corba rtt-${_package} -generate_boost_headers)
226
227
endif ()
227
228
228
229
# Add an explicit dependency between the typekits and message files
@@ -245,26 +246,13 @@ endif()
245
246
# LIST(APPEND ${PROJECT_NAME}_EXPORTED_TARGETS "rtt-${_package}-ros-transport") # <-- This is already done in orocos_typekit().
246
247
LIST (APPEND ${PROJECT_NAME} _EXPORTED_INCLUDE_DIRS "${rtt_roscomm_GENERATED_HEADERS_OUTPUT_DIRECTORY} /orocos" ${${_package} _INCLUDE_DIRS})
247
248
248
- add_file_dependencies(${CMAKE_CURRENT_BINARY_DIR} /ros_${_package} _typekit.cpp ${CMAKE_CURRENT_LIST_FILE} ${ROSMSGS_GENERATED_BOOST_HEADERS} )
249
- add_file_dependencies(${CMAKE_CURRENT_BINARY_DIR} /ros_${_package} _transport.cpp ${CMAKE_CURRENT_LIST_FILE} ${ROSMSGS_GENERATED_BOOST_HEADERS} )
250
-
251
- if (ENABLE_MQ)
252
- add_file_dependencies(${CMAKE_CURRENT_BINARY_DIR} /ros_${_package} _transport_mqueue.cpp ${CMAKE_CURRENT_LIST_FILE} ${ROSMSGS_GENERATED_BOOST_HEADERS} )
253
- endif ()
254
-
255
- if (ENABLE_CORBA)
256
- add_file_dependencies(${CMAKE_CURRENT_BINARY_DIR} /ros_${_package} _transport_corba.cpp ${CMAKE_CURRENT_LIST_FILE} ${ROSMSGS_GENERATED_BOOST_HEADERS} )
257
- endif ()
258
-
259
249
get_directory_property (_additional_make_clean_files ADDITIONAL_MAKE_CLEAN_FILES )
260
250
list (APPEND _additional_make_clean_files "${rtt-${_package} -typekit_SOURCES};${rtt-${_package} -ros-transport_SOURCES};${rtt-${_package} -ros-transport-corba_SOURCES};${rtt-${_package} -ros-transport-mqueue_SOURCES};${rtt_roscomm_GENERATED_HEADERS_OUTPUT_DIRECTORY} /orocos/${_package} " )
261
251
set_directory_properties (PROPERTIES
262
252
ADDITIONAL_MAKE_CLEAN_FILES "${_additional_make_clean_files} " )
263
253
264
254
# Install generated header files (dependent packages might need them)
265
255
if (DEFINED rtt_roscomm_GENERATED_HEADERS_INSTALL_DESTINATION)
266
- # install(FILES ${ROSMSGS_GENERATED_BOOST_HEADERS} DESTINATION ${rtt_roscomm_GENERATED_HEADERS_INSTALL_DESTINATION}/${_package}/boost/)
267
- # install(DIRECTORY "${rtt_roscomm_GENERATED_HEADERS_OUTPUT_DIRECTORY}/orocos/${_package}/typekit" DESTINATION ${rtt_roscomm_GENERATED_HEADERS_INSTALL_DESTINATION}/orocos/${_package})
268
256
install (
269
257
DIRECTORY "${rtt_roscomm_GENERATED_HEADERS_OUTPUT_DIRECTORY} /orocos/${_package} "
270
258
DESTINATION "${rtt_roscomm_GENERATED_HEADERS_INSTALL_DESTINATION} /orocos" )
0 commit comments