@@ -125,6 +125,27 @@ function tue-install-target-now
125
125
return $?
126
126
}
127
127
128
+ function _set_dependencies
129
+ {
130
+ local parent_target=$1
131
+ local target=$2
132
+
133
+ # If the target has a parent target, add target as a dependency to the parent target
134
+ if [ -n " $parent_target " ] && [ " $parent_target " != " main-loop" ]
135
+ then
136
+
137
+ if [ " $parent_target " != " $target " ]
138
+ then
139
+ tue-install-debug " echo $target >> $TUE_INSTALL_DEPENDENCIES_DIR /$parent_target "
140
+ tue-install-debug " echo $parent_target >> $TUE_INSTALL_DEPENDENCIES_ON_DIR /$target "
141
+ echo " $target " >> " $TUE_INSTALL_DEPENDENCIES_DIR " /" $parent_target "
142
+ echo " $parent_target " >> " $TUE_INSTALL_DEPENDENCIES_ON_DIR " /" $target "
143
+ sort " $TUE_INSTALL_DEPENDENCIES_DIR " /" $parent_target " -u -o " $TUE_INSTALL_DEPENDENCIES_DIR " /" $parent_target "
144
+ sort " $TUE_INSTALL_DEPENDENCIES_ON_DIR " /" $target " -u -o " $TUE_INSTALL_DEPENDENCIES_ON_DIR " /" $target "
145
+ fi
146
+ fi
147
+ }
148
+
128
149
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
129
150
130
151
function tue-install-rosdep
@@ -143,49 +164,51 @@ function tue-install-rosdep
143
164
then
144
165
tue-install-debug " Target '$target ' has not yet been resolved by rosdep, going to installation procedure"
145
166
146
- # Also make sure ros is installed
147
- tue-install-target ros || tue-install-error " Failed to install target 'ROS'"
148
-
149
167
# Check if target can be resolved by rosdep
150
168
tue-install-debug " rosdep resolve $target "
151
169
rosdep_res=($( rosdep resolve $target 2>&1 ) )
152
170
if [ $? -eq 0 ]
153
171
then
154
- tue-install-debug " rosdep correctly resolved to: ${rosdep_res[@]} "
155
-
156
- # If the target has a parent target, add target as a dependency to the parent target
157
- if [ -n " $parent_target " ]
158
- then
159
- if [ " $parent_target " != " $target " ]
160
- then
161
- echo " $target " >> $TUE_INSTALL_DEPENDENCIES_DIR /$parent_target
162
- echo " $parent_target " >> $TUE_INSTALL_DEPENDENCIES_ON_DIR /$target
163
- sort $TUE_INSTALL_DEPENDENCIES_DIR /$parent_target -u -o $TUE_INSTALL_DEPENDENCIES_DIR /$parent_target
164
- sort $TUE_INSTALL_DEPENDENCIES_ON_DIR /$target -u -o $TUE_INSTALL_DEPENDENCIES_ON_DIR /$target
165
- fi
166
- fi
172
+ tue-install-debug " rosdep correctly resolved to: ${rosdep_res[*]} "
167
173
168
174
case ${rosdep_res[0]} in
169
175
" #apt" ) tue-install-system ${rosdep_res[1]}
170
176
;;
171
177
" #pip" ) tue-install-pip ${rosdep_res[1]}
172
178
;;
173
- * ) tue-install-debug " Unsupported rosdep output: ${rosdep_res[@]} " ; TUE_INSTALL_CURRENT_TARGET=$parent_target ; return 1
179
+ * ) tue-install-debug " Unsupported rosdep output: ${rosdep_res[*]} " ;
180
+ TUE_INSTALL_CURRENT_TARGET=$parent_target ;
181
+ TUE_INSTALL_CURRENT_TARGET_DIR=$TUE_INSTALL_TARGETS_DIR /$parent_target ;
182
+ return 1
174
183
;;
175
184
esac
176
185
186
+ if [[ ${rosdep[1]} == " ros-" * ]]
187
+ then
188
+ # Also make sure ros is installed
189
+ tue-install-target ros || tue-install-error " Failed to install target 'ROS'"
190
+ fi
191
+
192
+ _set_dependencies $parent_target $target
193
+
177
194
touch $TUE_INSTALL_STATE_DIR /$target
178
195
179
196
TUE_INSTALL_CURRENT_TARGET=$parent_target
197
+ TUE_INSTALL_CURRENT_TARGET_DIR=$TUE_INSTALL_TARGETS_DIR /$parent_target
180
198
return 0
181
199
else
182
- tue-install-debug " Could not be resolved by rosdep. error: ${rosdep_res[@ ]} "
200
+ tue-install-debug " Could not be resolved by rosdep. error: ${rosdep_res[* ]} "
183
201
TUE_INSTALL_CURRENT_TARGET=$parent_target
202
+ TUE_INSTALL_CURRENT_TARGET_DIR=$TUE_INSTALL_TARGETS_DIR /$parent_target
184
203
return 1
185
204
fi
186
205
else
187
206
tue-install-debug " Target '$target ' already resolved correctly by rosdep, skipping it this time."
207
+
208
+ _set_dependencies $parent_target $target
209
+
188
210
TUE_INSTALL_CURRENT_TARGET=$parent_target
211
+ TUE_INSTALL_CURRENT_TARGET_DIR=$TUE_INSTALL_TARGETS_DIR /$parent_target
189
212
return 0
190
213
fi
191
214
}
@@ -204,11 +227,18 @@ function tue-install-target
204
227
# Check if valid target received as input
205
228
if [ ! -d $TUE_INSTALL_TARGETS_DIR /$target ]
206
229
then
207
- # Check if can be resolved by rosdep
208
- tue-install-rosdep $target
209
- if [ $? -eq 0 ]
230
+ # Targets starting with 'ros-' will never be resolved by rosdep
231
+ if [[ " $target " != " ros-" * ]]
210
232
then
211
- return 0
233
+ # Check if can be resolved by rosdep
234
+ tue-install-rosdep $target
235
+ if [ $? -eq 0 ]
236
+ then
237
+ return 0
238
+ else
239
+ tue-install-debug " Target '$target ' does not exist."
240
+ return 1
241
+ fi
212
242
else
213
243
tue-install-debug " Target '$target ' does not exist."
214
244
return 1
@@ -219,17 +249,7 @@ function tue-install-target
219
249
TUE_INSTALL_CURRENT_TARGET=$target
220
250
TUE_INSTALL_CURRENT_TARGET_DIR=$TUE_INSTALL_TARGETS_DIR /$target
221
251
222
- # If the target has a parent target, add target as a dependency to the parent target
223
- if [ -n " $parent_target " ] && [ " $parent_target " != " main-loop" ]
224
- then
225
- if [ " $parent_target " != " $target " ]
226
- then
227
- echo " $target " >> " $TUE_INSTALL_DEPENDENCIES_DIR " /" $parent_target "
228
- echo " $parent_target " >> " $TUE_INSTALL_DEPENDENCIES_ON_DIR " /" $target "
229
- sort " $TUE_INSTALL_DEPENDENCIES_DIR " /" $parent_target " -u -o " $TUE_INSTALL_DEPENDENCIES_DIR " /" $parent_target "
230
- sort " $TUE_INSTALL_DEPENDENCIES_ON_DIR " /" $target " -u -o " $TUE_INSTALL_DEPENDENCIES_ON_DIR " /" $target "
231
- fi
232
- fi
252
+ _set_dependencies $parent_target $target
233
253
234
254
local state_file=" $TUE_INSTALL_STATE_DIR " /" $target "
235
255
local state_file_now=" ${state_file} -now"
0 commit comments