aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2006-05-27 23:59:21 +0000
committerHolger Hans Peter Freyther <zecke@selfish.org>2006-05-27 23:59:21 +0000
commitc61025dc7f932c6668aad40e75cdb0be202a97a5 (patch)
treeff144b35e9021243184780078441ada92fa7c9f5 /bin
parent861a02a1f89cd6ecb4857d73a72667baa31d9d1f (diff)
downloadbitbake-c61025dc7f932c6668aad40e75cdb0be202a97a5.tar.gz
bitbake/bin/bitbake: Add code to handle RDEPENDS
Add code to handle the RDEPENDS. We use getRunProviders and the rundeps variable of BBParsingStatus to get the providers, similiar to addRunDeps. The graph is now not looking too bad.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/bitbake49
1 files changed, 32 insertions, 17 deletions
diff --git a/bin/bitbake b/bin/bitbake
index 3c0669f15..36263cbde 100755
--- a/bin/bitbake
+++ b/bin/bitbake
@@ -547,38 +547,53 @@ class BBCooker:
print >> depends_file, '"%(package)s" -> "%(depend)s"' % vars()
- def add_all_depends( package_list ):
+ def add_all_depends( the_depends, the_rdepends ):
"""
Add both DEPENDS and RDEPENDS. RDEPENDS will get dashed
lines
"""
+ package_list = the_depends + the_rdepends
for package in package_list:
if package in seen_rdepends or package in ignore_deps:
continue
seen_rdepends.append( package )
- if not package in self.status.providers:
- """
- We have not seen this name -> error in
- dependency handling
- """
- bb.note( "ERROR with provider: %(package)s" % vars() )
- print >> alldepends_file, '"%(package)s" -> ERROR' % vars()
- continue
- if package == "task-bootstrap":
- print "PackageList: %s" % package_list
-
- # get all providers for this package
- providers = self.status.providers[package]
+ # let us see if this is a runtime or
+ if package in the_depends:
+ if not package in self.status.providers:
+ bb.note( "ERROR with provider: %(package)s" % vars() )
+ print >> alldepends_file, '"%(package)s" -> ERROR' % vars()
+ continue
+
+ providers = self.status.providers[package]
+ elif package in the_rdepends:
+ if len(self.getProvidersRun(package)) == 0:
+ bb.note( "ERROR with rprovider: %(package)s" % vars() )
+ print >> alldepends_file, '"%(package)s" -> ERROR [style="dashed"]' % vars()
+ continue
+
+ providers = self.getProvidersRun(package)
+ else:
+ print "Complete ERROR! %s" % package
+ continue
# now let us find the bestProvider for it
fn = self.filterProviders(providers, package)[0]
depends = bb.utils.explode_deps(self.bb_cache.getVar('DEPENDS', fn, True) or "")
- rdepends = bb.utils.explode_deps(self.bb_cache.getVar('RDEPENDS', fn, True) or "")
+ if fn in self.status.rundeps and package in self.status.rundeps[fn]:
+ rdepends= self.status.rundeps[fn][package].keys()
+ else:
+ rdepends = []
version = self.bb_cache.getVar('PV', fn, True ) + '-' + self.bb_cache.getVar('PR', fn, True)
- add_all_depends ( depends+rdepends )
+ if package == "task-opie-applets":
+ print fn
+ print depends
+ print depends
+ print version
+
+ add_all_depends ( depends, rdepends )
# now create the node
print >> alldepends_file, '"%(package)s" [label="%(package)s\\n%(version)s"]' % vars()
@@ -600,7 +615,7 @@ class BBCooker:
# Add all depends now
alldepends_file = file('alldepends.dot', 'w' )
print >> alldepends_file, "digraph alldepends {"
- add_all_depends( pkgs_to_build )
+ add_all_depends( pkgs_to_build, [] )
print >> alldepends_file, "}"
def filterProviders(self, providers, item):