diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2006-05-25 21:38:06 +0000 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2006-05-25 21:38:06 +0000 |
commit | d9823679b9ba9ef351eb057a16b2dc09ba64d252 (patch) | |
tree | b85d57be3f7e6cbe35f330568779100a7e57ed98 /bin | |
parent | 56d3fb063fc91c8ca3dd4a212c790ac121ba0bfe (diff) | |
download | bitbake-d9823679b9ba9ef351eb057a16b2dc09ba64d252.tar.gz |
bitbake/bin/bitbake: Make sure we add all handlers from INHERIT
The code had the assumption that at least one .inc
file was included (always included). This is not true
in the NSLu2 case. The code now makes sure we load each
bbclass we have in the INHERIT line either directly or
indirectly. And then we can safely add all event handlers.
Todo: Add HANDLERS += to only load the HANDLERS and not
all classes.
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/bitbake | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/bin/bitbake b/bin/bitbake index 67322b012..6546ac411 100755 --- a/bin/bitbake +++ b/bin/bitbake @@ -859,11 +859,19 @@ class BBCooker: try: self.configuration.data = bb.parse.handle( afile, self.configuration.data ) - # Add the handlers we inherited by INHERITS + # Add the handlers we inherited by INHERIT + # we need to do this manually as it is not guranteed + # we will pick up these classes... as we only INHERIT + # on .inc and .bb files but not on .conf + data = bb.data.createCopy( self.configuration.data ) + inherits = ["base"] + (bb.data.getVar('INHERIT', data, True ) or "").split() + for inherit in inherits: + data = bb.parse.handle( os.path.join('classes', '%s.bbclass' % inherit ), data, True ) + # FIXME: This assumes that we included at least one .inc file - for var in bb.data.keys(self.configuration.data): - if bb.data.getVarFlag(var, 'handler', self.configuration.data): - bb.event.register(var,bb.data.getVar(var,self.configuration.data)) + for var in bb.data.keys(data): + if bb.data.getVarFlag(var, 'handler', data): + bb.event.register(var,bb.data.getVar(var, data)) except IOError: bb.fatal( "Unable to open %s" % afile ) |