Skip to content

Commit 2c599b3

Browse files
authored
Merge pull request #132 from orocos/fix/rtt_roscomm-parallel-builds
rtt_roscomm: replace add_file_dependencies() macro call by a custom target
2 parents 7420d4c + a81018d commit 2c599b3

File tree

2 files changed

+8
-25
lines changed

2 files changed

+8
-25
lines changed

rtt_roscomm/src/templates/service/CMakeLists.txt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ else()
66
#add_definitions( -DRTT_COMPONENT )
77
endif()
88

9-
include(AddFileDependencies)
10-
119
# Configure source and destination paths of generated files
1210
rtt_roscomm_destinations()
1311

@@ -89,8 +87,6 @@ configure_file(
8987
rtt_rosservice_proxies.cpp.in
9088
${CMAKE_CURRENT_BINARY_DIR}/rtt_rosservice_proxies.cpp @ONLY )
9189

92-
add_file_dependencies( ${CMAKE_CURRENT_BINARY_DIR}/rtt_rosservice_proxies.cpp ${SRV_FILES})
93-
9490
include_directories(
9591
${USE_OROCOS_INCLUDE_DIRS}
9692
${catkin_INCLUDE_DIRS}
@@ -105,7 +101,6 @@ target_link_libraries( rtt_${ROSPACKAGE}_rosservice_proxies ${catkin_LIBRARIES}
105101
if(DEFINED ${_package}_EXPORTED_TARGETS)
106102
add_dependencies( rtt_${ROSPACKAGE}_rosservice_proxies ${${_package}_EXPORTED_TARGETS})
107103
endif()
108-
add_file_dependencies( ${CMAKE_CURRENT_BINARY_DIR}/rtt_rosservice_proxies.cpp "${CMAKE_CURRENT_LIST_FILE}")
109104

110105
get_directory_property(_additional_make_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
111106
list(APPEND _additional_make_clean_files "${CMAKE_CURRENT_BINARY_DIR}/rtt_rosservice_proxies.cpp")

rtt_roscomm/src/templates/typekit/CMakeLists.txt

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ else()
66
#add_definitions( -DRTT_COMPONENT )
77
endif()
88

9-
include(AddFileDependencies)
10-
119
# mqueue transport
1210
OPTION(ENABLE_MQ "Build posix message queue transport plugin for ${_package}" OFF)
1311
if(ENABLE_MQ)
@@ -131,7 +129,7 @@ foreach( FILE ${MSG_FILES} )
131129

132130
# Necessary for create_boost_header.py command below
133131
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})
135133

136134
add_custom_command(
137135
OUTPUT ${_ROSMSG_GENERATED_BOOST_HEADER}
@@ -140,22 +138,18 @@ foreach( FILE ${MSG_FILES} )
140138
DEPENDS ${FILE} ${${_package}_EXPORTED_TARGETS} ${CREATE_BOOST_HEADER_EXE_PATH}
141139
VERBATIM)
142140

143-
#set_source_files_properties(${ROSMSGS_GENERATED_BOOST_HEADERS} PROPERTIES GENERATED TRUE)
144-
145141
# Message-specific typekit module
146142
configure_file(
147143
ros_msg_typekit_plugin.cpp.in
148144
${CMAKE_CURRENT_BINARY_DIR}/ros_${ROSMSGNAME}_typekit_plugin.cpp @ONLY )
149145
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})
151146

152147
# Conversion header for CORBA
153148
if(ENABLE_CORBA)
154149
configure_file(
155150
ros_msg_corba_conversion.hpp.in
156151
${CMAKE_CURRENT_BINARY_DIR}/ros_${ROSMSGNAME}_corba_conversion.hpp @ONLY )
157152
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})
159153
endif()
160154

161155
# Types.hpp helper for extern templates
@@ -208,21 +202,28 @@ include_directories(
208202
if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "Release")
209203
set(CMAKE_BUILD_TYPE MinSizeRel)
210204
endif()
205+
add_custom_target(rtt-${_package}-generate_boost_headers
206+
DEPENDS ${${_package}_GENERATED_BOOST_HEADERS}
207+
)
211208
orocos_typekit(rtt-${_package}-typekit ${rtt-${_package}-typekit_SOURCES})
212209
target_link_libraries(rtt-${_package}-typekit ${catkin_LIBRARIES} ${${_package}_LIBRARIES} ${USE_OROCOS_LIBRARIES})
210+
add_dependencies(rtt-${_package}-typekit rtt-${_package}-generate_boost_headers)
213211
orocos_typekit(rtt-${_package}-ros-transport ${rtt-${_package}-ros-transport_SOURCES})
214212
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)
215214

216215
# Build mqueue transport plugin
217216
if(ENABLE_MQ)
218217
orocos_typekit(rtt-${_package}-ros-transport-mqueue ${rtt-${_package}-ros-transport-mqueue_SOURCES})
219218
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)
220220
endif()
221221

222222
# Build corba transport plugin
223223
if(ENABLE_CORBA)
224224
orocos_typekit(rtt-${_package}-ros-transport-corba ${rtt-${_package}-ros-transport-corba_SOURCES})
225225
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)
226227
endif()
227228

228229
# Add an explicit dependency between the typekits and message files
@@ -245,26 +246,13 @@ endif()
245246
# LIST(APPEND ${PROJECT_NAME}_EXPORTED_TARGETS "rtt-${_package}-ros-transport") # <-- This is already done in orocos_typekit().
246247
LIST(APPEND ${PROJECT_NAME}_EXPORTED_INCLUDE_DIRS "${rtt_roscomm_GENERATED_HEADERS_OUTPUT_DIRECTORY}/orocos" ${${_package}_INCLUDE_DIRS})
247248

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-
259249
get_directory_property(_additional_make_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
260250
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}")
261251
set_directory_properties(PROPERTIES
262252
ADDITIONAL_MAKE_CLEAN_FILES "${_additional_make_clean_files}")
263253

264254
# Install generated header files (dependent packages might need them)
265255
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})
268256
install(
269257
DIRECTORY "${rtt_roscomm_GENERATED_HEADERS_OUTPUT_DIRECTORY}/orocos/${_package}"
270258
DESTINATION "${rtt_roscomm_GENERATED_HEADERS_INSTALL_DESTINATION}/orocos")

0 commit comments

Comments
 (0)