From bff73743280f9eafebe4591f7368ead91a4eb74d Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 12 Jun 2013 16:31:57 +0000 Subject: classes/conf: Add eventmasks for event handlers Now that bitbake supports masking events for event handlers, lets use this so event handlers are only called for events they care about. This lets us simplify the code indentation a bit at least as well as mildly improving the event handling performance. Signed-off-by: Richard Purdie --- meta/classes/packageinfo.bbclass | 50 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) (limited to 'meta/classes/packageinfo.bbclass') diff --git a/meta/classes/packageinfo.bbclass b/meta/classes/packageinfo.bbclass index 4709bea359..42fcd04150 100644 --- a/meta/classes/packageinfo.bbclass +++ b/meta/classes/packageinfo.bbclass @@ -1,29 +1,29 @@ python packageinfo_handler () { - if isinstance(e, bb.event.RequestPackageInfo): - import oe.packagedata - pkginfolist = [] - tmpdir = e.data.getVar('TMPDIR', True) - target_vendor = e.data.getVar('TARGET_VENDOR', True) - target_os = e.data.getVar('TARGET_OS', True) - package_archs = e.data.getVar('PACKAGE_ARCHS', True) - packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1] - deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging - - for arch in package_archs.split(): - pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/' - if os.path.exists(pkgdata_dir): - for root, dirs, files in os.walk(pkgdata_dir): - for pkgname in files: - if pkgname.endswith('.packaged'): - pkgname = pkgname[:-9] - pkgdatafile = root + pkgname - try: - sdata = oe.packagedata.read_pkgdatafile(pkgdatafile) - sdata['PKG'] = pkgname - pkginfolist.append(sdata) - except Exception as e: - bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e))) - bb.event.fire(bb.event.PackageInfo(pkginfolist), e.data) + import oe.packagedata + pkginfolist = [] + tmpdir = e.data.getVar('TMPDIR', True) + target_vendor = e.data.getVar('TARGET_VENDOR', True) + target_os = e.data.getVar('TARGET_OS', True) + package_archs = e.data.getVar('PACKAGE_ARCHS', True) + packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1] + deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging + + for arch in package_archs.split(): + pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/' + if os.path.exists(pkgdata_dir): + for root, dirs, files in os.walk(pkgdata_dir): + for pkgname in files: + if pkgname.endswith('.packaged'): + pkgname = pkgname[:-9] + pkgdatafile = root + pkgname + try: + sdata = oe.packagedata.read_pkgdatafile(pkgdatafile) + sdata['PKG'] = pkgname + pkginfolist.append(sdata) + except Exception as e: + bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e))) + bb.event.fire(bb.event.PackageInfo(pkginfolist), e.data) } addhandler packageinfo_handler +packageinfo_handler[eventmask] = "bb.event.RequestPackageInfo" -- cgit v1.2.3