From 339f92f89f6a6e37de233c09f83348355c7c5806 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Sun, 15 Jun 2014 17:14:16 +1200 Subject: [PATCH] sb: Tighten the canadian cross compile detection. A canadian cross compile needs the build, host and target being different. Clean up the error handling. --- source-builder/sb/build.py | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/source-builder/sb/build.py b/source-builder/sb/build.py index 58268c9..e924f62 100644 --- a/source-builder/sb/build.py +++ b/source-builder/sb/build.py @@ -113,16 +113,27 @@ class build: ereport.generate('rsb-report-%s.txt' % self.macros['name'], self.opts, header) def __init__(self, name, create_tar_files, opts, macros = None): - self.opts = opts - if macros is None: - self.macros = opts.defaults - else: - self.macros = macros - self.create_tar_files = create_tar_files - log.notice('config: ' + name) - self.config = config.file(name, opts, self.macros) - self.script = script() - self.macros['buildname'] = self._name_(self.macros['name']) + try: + self.opts = opts + if macros is None: + self.macros = opts.defaults + else: + self.macros = macros + self.create_tar_files = create_tar_files + log.notice('config: ' + name) + self.config = config.file(name, opts, self.macros) + self.script = script() + self.macros['buildname'] = self._name_(self.macros['name']) + except error.general, gerr: + log.notice(str(gerr)) + log.stderr('Build FAILED') + raise + except error.internal, ierr: + log.notice(str(ierr)) + log.stderr('Internal Build FAILED') + raise + except: + raise def rmdir(self, rmpath): log.output('removing: %s' % (path.host(rmpath))) @@ -140,6 +151,7 @@ class build: _build = self.config.expand('%{_build}') _target = self.config.expand('%{_target}') return self.config.defined('%{allow_cxc}') and \ + len(_host) and len(_build) and (_target) and \ _host != _build and _host != _target def source(self, name):