mirror of
https://git.rtems.org/rtems-source-builder
synced 2024-10-09 07:15:10 +08:00
sb: Move error report generation to the build phase.
Generate a separate report of each package being built in a build set. This creates a better list of faults in the case of nesting build sets such as */rtems-all.
This commit is contained in:
@@ -109,6 +109,9 @@ class build:
|
|||||||
else:
|
else:
|
||||||
return name
|
return name
|
||||||
|
|
||||||
|
def _generate_report_(self, header):
|
||||||
|
ereport.generate('rsb-report-%s.txt' % self.macros['name'], self.opts, header)
|
||||||
|
|
||||||
def __init__(self, name, create_tar_files, opts, macros = None):
|
def __init__(self, name, create_tar_files, opts, macros = None):
|
||||||
self.opts = opts
|
self.opts = opts
|
||||||
if macros is None:
|
if macros is None:
|
||||||
@@ -386,6 +389,7 @@ class build:
|
|||||||
if package.disabled():
|
if package.disabled():
|
||||||
log.notice('package: nothing to build')
|
log.notice('package: nothing to build')
|
||||||
else:
|
else:
|
||||||
|
try:
|
||||||
name = package.name()
|
name = package.name()
|
||||||
if self.canadian_cross():
|
if self.canadian_cross():
|
||||||
log.notice('package: (Cxc) %s' % (name))
|
log.notice('package: (Cxc) %s' % (name))
|
||||||
@@ -409,6 +413,20 @@ class build:
|
|||||||
else:
|
else:
|
||||||
log.notice('building: %s' % (name))
|
log.notice('building: %s' % (name))
|
||||||
self.run(sn)
|
self.run(sn)
|
||||||
|
except error.general, gerr:
|
||||||
|
log.notice(str(gerr))
|
||||||
|
log.stderr('Build FAILED')
|
||||||
|
self._generate_report_('Build: %s' % (gerr))
|
||||||
|
raise
|
||||||
|
except error.internal, ierr:
|
||||||
|
log.notice(str(ierr))
|
||||||
|
log.stderr('Internal Build FAILED')
|
||||||
|
self._generate_report_('Build: %s' % (ierr))
|
||||||
|
raise
|
||||||
|
except:
|
||||||
|
raise
|
||||||
|
if self.opts.dry_run():
|
||||||
|
self._generate_report_('Build: dry run')
|
||||||
|
|
||||||
def name(self):
|
def name(self):
|
||||||
packages = self.config.packages()
|
packages = self.config.packages()
|
||||||
@@ -454,9 +472,6 @@ def find_config(config, configs):
|
|||||||
|
|
||||||
def run(args):
|
def run(args):
|
||||||
ec = 0
|
ec = 0
|
||||||
opts = None
|
|
||||||
b = None
|
|
||||||
erheader = None
|
|
||||||
try:
|
try:
|
||||||
optargs = { '--list-configs': 'List available configurations' }
|
optargs = { '--list-configs': 'List available configurations' }
|
||||||
opts = options.load(args, optargs)
|
opts = options.load(args, optargs)
|
||||||
@@ -479,13 +494,9 @@ def run(args):
|
|||||||
b.make()
|
b.make()
|
||||||
b = None
|
b = None
|
||||||
except error.general, gerr:
|
except error.general, gerr:
|
||||||
erheader = 'Build: %s' % (gerr)
|
|
||||||
log.notice(str(gerr))
|
|
||||||
log.stderr('Build FAILED')
|
log.stderr('Build FAILED')
|
||||||
ec = 1
|
ec = 1
|
||||||
except error.internal, ierr:
|
except error.internal, ierr:
|
||||||
erheader = 'Build: %s' % (ierr)
|
|
||||||
log.notice(str(ierr))
|
|
||||||
log.stderr('Internal Build FAILED')
|
log.stderr('Internal Build FAILED')
|
||||||
ec = 1
|
ec = 1
|
||||||
except error.exit, eerr:
|
except error.exit, eerr:
|
||||||
@@ -493,12 +504,6 @@ def run(args):
|
|||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
log.notice('abort: user terminated')
|
log.notice('abort: user terminated')
|
||||||
ec = 1
|
ec = 1
|
||||||
if (ec != 0 and erheader and opts and b) or (opts and opts.dry_run()):
|
|
||||||
if opts.dry_run():
|
|
||||||
bname = 'dry-run'
|
|
||||||
else:
|
|
||||||
bname = b.name()
|
|
||||||
ereport.generate('rsb-report-%s.txt' % (bname), opts, erheader)
|
|
||||||
sys.exit(ec)
|
sys.exit(ec)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@@ -427,9 +427,6 @@ def list_bset_cfg_files(opts, configs):
|
|||||||
def run():
|
def run():
|
||||||
import sys
|
import sys
|
||||||
ec = 0
|
ec = 0
|
||||||
opts = None
|
|
||||||
b = None
|
|
||||||
erheader = None
|
|
||||||
try:
|
try:
|
||||||
optargs = { '--list-configs': 'List available configurations',
|
optargs = { '--list-configs': 'List available configurations',
|
||||||
'--list-bsets': 'List available build sets',
|
'--list-bsets': 'List available build sets',
|
||||||
@@ -464,13 +461,9 @@ def run():
|
|||||||
c += 1
|
c += 1
|
||||||
print 'dep[%d]: %s' % (c, d)
|
print 'dep[%d]: %s' % (c, d)
|
||||||
except error.general, gerr:
|
except error.general, gerr:
|
||||||
erheader = 'Build: %s' % (gerr)
|
|
||||||
log.notice(str(gerr))
|
|
||||||
log.stderr('Build FAILED')
|
log.stderr('Build FAILED')
|
||||||
ec = 1
|
ec = 1
|
||||||
except error.internal, ierr:
|
except error.internal, ierr:
|
||||||
erheader = 'Build: %s' % (ierr)
|
|
||||||
log.notice(str(ierr))
|
|
||||||
log.stderr('Internal Build FAILED')
|
log.stderr('Internal Build FAILED')
|
||||||
ec = 1
|
ec = 1
|
||||||
except error.exit, eerr:
|
except error.exit, eerr:
|
||||||
@@ -478,12 +471,6 @@ def run():
|
|||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
log.notice('abort: user terminated')
|
log.notice('abort: user terminated')
|
||||||
ec = 1
|
ec = 1
|
||||||
if (ec != 0 and erheader and opts and b) or (opts and opts.dry_run()):
|
|
||||||
if opts.dry_run():
|
|
||||||
bset = 'dry-run'
|
|
||||||
else:
|
|
||||||
bset = b.bset
|
|
||||||
ereport.generate('rsb-report-%s.txt' % (bset), opts, erheader)
|
|
||||||
sys.exit(ec)
|
sys.exit(ec)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Reference in New Issue
Block a user