186
178
f.write('exec {}\n'.format(' '.join(commandlist)))
189
return self.run(['/bin/bash', f.name], cwd=cwd)
181
self.run(['/bin/bash', f.name], cwd=cwd)
192
184
# Fixup ROS Cmake files that have hardcoded paths in them
194
186
'find', self.rosdir, '-name', '*.cmake',
195
187
'-exec', 'sed', '-i', '-e',
196
188
r's|\(\W\)/usr/lib/|\1{0}/usr/lib/|g'.format(self.installdir),
201
192
self._find_package_deps()
203
if not self._build_packages_deps():
193
self._build_packages_deps()
207
196
findcmd = ['find', self.installdir, '-name', '*.cmake', '-delete']
208
if not self.run(findcmd):
213
201
'opt/ros/' + self.options.rosversion + '/.catkin',
214
202
'opt/ros/' + self.options.rosversion + '/.rosinstall',
215
203
'opt/ros/' + self.options.rosversion + '/setup.sh',
216
204
'opt/ros/' + self.options.rosversion + '/_setup_util.py'],
217
cwd=self.installdir):
220
207
os.remove(os.path.join(self.installdir, 'usr/bin/xml2-config'))
224
209
def _build_packages_deps(self):
225
210
# Ugly dependency resolution, just loop through until we can
226
211
# find something to build. When we do, build it. Loop until we
233
218
for pkg in self.packages - built:
234
219
if len(self.package_local_deps[pkg] - built) > 0:
237
if not self._handle_package(pkg):
221
self._handle_package(pkg)
243
226
if not built_pkg:
227
raise RuntimeError('some packages failed to build')
248
229
def _handle_package(self, pkg):
249
230
catkincmd = ['catkin_make_isolated']