diff options
Diffstat (limited to 'bitbake/bin/bitbake')
-rwxr-xr-x | bitbake/bin/bitbake | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index 63bd07fe34..457fbb7527 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake @@ -22,7 +22,7 @@ # Place, Suite 330, Boston, MA 02111-1307 USA. import sys, os, getopt, glob, copy, os.path, re, time -sys.path.append(os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib')) +sys.path.insert(0,os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib')) import bb from bb import utils, data, parse, debug, event, fatal from sets import Set @@ -31,7 +31,7 @@ import itertools, optparse parsespin = itertools.cycle( r'|/-\\' ) bbdebug = 0 -__version__ = "1.3.3" +__version__ = "1.3.3.2" #============================================================================# # BBParsingStatus @@ -80,7 +80,7 @@ class BBParsingStatus: depends = (bb.data.getVar("DEPENDS", bb_data, True) or "").split() packages = (bb.data.getVar('PACKAGES', bb_data, True) or "").split() packages_dynamic = (bb.data.getVar('PACKAGES_DYNAMIC', bb_data, True) or "").split() - rprovides = Set((bb.data.getVar("RPROVIDES_%s" % pn, bb_data, 1) or "").split() + (bb.data.getVar("RPROVIDES", bb_data, 1) or "").split()) + rprovides = (bb.data.getVar("RPROVIDES", bb_data, 1) or "").split() # build PackageName to FileName lookup table @@ -110,11 +110,11 @@ class BBParsingStatus: # Build reverse hash for PACKAGES, so runtime dependencies # can be be resolved (RDEPENDS, RRECOMMENDS etc.) - for package in packages: if not package in self.packages: self.packages[package] = [] self.packages[package].append(file_name) + rprovides += (bb.data.getVar("RPROVIDES_%s" % package, bb_data, 1) or "").split() for package in packages_dynamic: if not package in self.packages_dynamic: @@ -493,6 +493,7 @@ class BBCooker: if not item in self.status.providers: bb.error("Nothing provides dependency %s" % item) + bb.event.fire(bb.event.NoProvider(item,self.configuration.data)) return 0 all_p = self.status.providers[item] @@ -529,6 +530,7 @@ class BBCooker: providers_list.append(self.status.pkg_fn[fn]) bb.note("multiple providers are available (%s);" % ", ".join(providers_list)) bb.note("consider defining PREFERRED_PROVIDER_%s" % item) + bb.event.fire(bb.event.MultipleProviders(item,providers_list,self.configuration.data)) self.consider_msgs_cache.append(item) @@ -539,6 +541,7 @@ class BBCooker: return 1 bb.note("no buildable providers for %s" % item) + bb.event.fire(bb.event.NoProvider(item,self.configuration.data)) return 0 def buildRProvider( self, item , buildAllDeps ): @@ -558,6 +561,7 @@ class BBCooker: if not all_p: bb.error("Nothing provides runtime dependency %s" % (item)) + bb.event.fire(bb.event.NoProvider(item,self.configuration.data,runtime=True)) return False for p in all_p: @@ -592,6 +596,7 @@ class BBCooker: providers_list.append(self.status.pkg_fn[fn]) bb.note("multiple providers are available (%s);" % ", ".join(providers_list)) bb.note("consider defining a PREFERRED_PROVIDER to match runtime %s" % item) + bb.event.fire(bb.event.MultipleProviders(item,providers_list,self.configuration.data,runtime=True)) self.consider_msgs_cache.append(item) if len(preferred) > 1: @@ -601,6 +606,7 @@ class BBCooker: providers_list.append(self.status.pkg_fn[fn]) bb.note("multiple preferred providers are available (%s);" % ", ".join(providers_list)) bb.note("consider defining only one PREFERRED_PROVIDER to match runtime %s" % item) + bb.event.fire(bb.event.MultipleProviders(item,providers_list,self.configuration.data,runtime=True)) self.consider_msgs_cache.append(item) # run through the list until we find one that we can build @@ -610,6 +616,7 @@ class BBCooker: return True bb.error("No buildable providers for runtime %s" % item) + bb.event.fire(bb.event.NoProvider(item,self.configuration.data)) return False def getProvidersRun(self, rdepend): @@ -666,7 +673,9 @@ class BBCooker: bb.debug(2, "Additional runtime dependencies for %s are: %s" % (item, " ".join(rdepends))) - for rdepend in rdepends: + for rdepend in rdepends: + if rdepend in self.status.ignored_dependencies: + continue if not self.buildRProvider(rdepend, buildAllDeps): return False return True @@ -880,6 +889,7 @@ class BBCooker: bb.event.fire(bb.event.BuildStarted(buildname, pkgs_to_build, self.configuration.data)) + failures = 0 for k in pkgs_to_build: failed = False try: @@ -891,10 +901,11 @@ class BBCooker: failed = True if failed: + failures += failures if self.configuration.abort: sys.exit(1) - bb.event.fire(bb.event.BuildCompleted(buildname, pkgs_to_build, self.configuration.data)) + bb.event.fire(bb.event.BuildCompleted(buildname, pkgs_to_build, self.configuration.data, failures)) sys.exit( self.stats.show() ) @@ -1067,8 +1078,7 @@ class BBCooker: # main #============================================================================# -if __name__ == "__main__": - +def main(): parser = optparse.OptionParser( version = "BitBake Build Tool Core version %s, %%prog version %s" % ( bb.__version__, __version__ ), usage = """%prog [options] [package ...] @@ -1120,3 +1130,8 @@ Default BBFILES are the .bb files in the current directory.""" ) cooker = BBCooker() cooker.cook( BBConfiguration( options ), args[1:] ) + + + +if __name__ == "__main__": + main() |