+def executeOneBB( fn ):
+ try:
+ d = bb.parse.handle(fn, make.cfg)
+ except IOError:
+ bb.fatal("Unable to open %s" % fn)
+
+ name = bb.data.getVar('PN', d, 1)
+ bb.event.fire(bb.event.PkgStarted(name, d))
+ try:
+ __stats["attempt"] += 1
+ if not make.options.dry_run:
+ bb.build.exec_task('do_%s' % make.options.cmd, d)
+ bb.event.fire(bb.event.PkgSucceeded(name, d))
+ __build_cache.append(fn)
+ except bb.build.FuncFailed:
+ __stats["fail"] += 1
+ bb.error("task stack execution failed")
+ bb.event.fire(bb.event.PkgFailed(name, d))
+ __build_cache_fail.append(fn)
+ except bb.build.EventException:
+ __stats["fail"] += 1
+ (type, value, traceback) = sys.exc_info()
+ e = value.event
+ bb.error("%s event exception, aborting" % bb.event.getName(e))
+ bb.event.fire(bb.event.PkgFailed(name, d))
+ __build_cache_fail.append(fn)