Skip to content

Commit bfbffec

Browse files
committed
Add ros prefix in dependency 'graph'
1 parent 4b69d91 commit bfbffec

File tree

1 file changed

+53
-33
lines changed

1 file changed

+53
-33
lines changed

installer/tue-install-impl.bash

Lines changed: 53 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,27 @@ function tue-install-target-now
125125
return $?
126126
}
127127

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+
128149
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
129150

130151
function tue-install-rosdep
@@ -143,49 +164,51 @@ function tue-install-rosdep
143164
then
144165
tue-install-debug "Target '$target' has not yet been resolved by rosdep, going to installation procedure"
145166

146-
# Also make sure ros is installed
147-
tue-install-target ros || tue-install-error "Failed to install target 'ROS'"
148-
149167
# Check if target can be resolved by rosdep
150168
tue-install-debug "rosdep resolve $target"
151169
rosdep_res=($(rosdep resolve $target 2>&1))
152170
if [ $? -eq 0 ]
153171
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[*]}"
167173

168174
case ${rosdep_res[0]} in
169175
"#apt") tue-install-system ${rosdep_res[1]}
170176
;;
171177
"#pip") tue-install-pip ${rosdep_res[1]}
172178
;;
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
174183
;;
175184
esac
176185

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+
177194
touch $TUE_INSTALL_STATE_DIR/$target
178195

179196
TUE_INSTALL_CURRENT_TARGET=$parent_target
197+
TUE_INSTALL_CURRENT_TARGET_DIR=$TUE_INSTALL_TARGETS_DIR/$parent_target
180198
return 0
181199
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[*]}"
183201
TUE_INSTALL_CURRENT_TARGET=$parent_target
202+
TUE_INSTALL_CURRENT_TARGET_DIR=$TUE_INSTALL_TARGETS_DIR/$parent_target
184203
return 1
185204
fi
186205
else
187206
tue-install-debug "Target '$target' already resolved correctly by rosdep, skipping it this time."
207+
208+
_set_dependencies $parent_target $target
209+
188210
TUE_INSTALL_CURRENT_TARGET=$parent_target
211+
TUE_INSTALL_CURRENT_TARGET_DIR=$TUE_INSTALL_TARGETS_DIR/$parent_target
189212
return 0
190213
fi
191214
}
@@ -204,11 +227,18 @@ function tue-install-target
204227
# Check if valid target received as input
205228
if [ ! -d $TUE_INSTALL_TARGETS_DIR/$target ]
206229
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-"* ]]
210232
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
212242
else
213243
tue-install-debug "Target '$target' does not exist."
214244
return 1
@@ -219,17 +249,7 @@ function tue-install-target
219249
TUE_INSTALL_CURRENT_TARGET=$target
220250
TUE_INSTALL_CURRENT_TARGET_DIR=$TUE_INSTALL_TARGETS_DIR/$target
221251

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
233253

234254
local state_file="$TUE_INSTALL_STATE_DIR"/"$target"
235255
local state_file_now="${state_file}-now"

0 commit comments

Comments
 (0)