summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/cooker.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
-rw-r--r--bitbake/lib/bb/cooker.py72
1 files changed, 29 insertions, 43 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index ce818f3e59..907565401d 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -623,9 +623,7 @@ class BBCooker:
623 623
624 taskdata, runlist, pkgs_to_build = self.buildTaskData(pkgs_to_build, None, self.configuration.abort, allowincomplete=True) 624 taskdata, runlist, pkgs_to_build = self.buildTaskData(pkgs_to_build, None, self.configuration.abort, allowincomplete=True)
625 625
626 targetid = taskdata.getbuild_id(pkgs_to_build[0]) 626 fn = taskdata.build_targets[pkgs_to_build[0]][0]
627 fnid = taskdata.build_targets[targetid][0]
628 fn = taskdata.fn_index[fnid]
629 else: 627 else:
630 envdata = self.data 628 envdata = self.data
631 629
@@ -714,7 +712,7 @@ class BBCooker:
714 712
715 713
716 def buildDependTree(self, rq, taskdata): 714 def buildDependTree(self, rq, taskdata):
717 seen_fnids = [] 715 seen_fns = []
718 depend_tree = {} 716 depend_tree = {}
719 depend_tree["depends"] = {} 717 depend_tree["depends"] = {}
720 depend_tree["tdepends"] = {} 718 depend_tree["tdepends"] = {}
@@ -732,10 +730,9 @@ class BBCooker:
732 version = "%s:%s-%s" % self.recipecache.pkg_pepvpr[fn] 730 version = "%s:%s-%s" % self.recipecache.pkg_pepvpr[fn]
733 depend_tree['providermap'][name] = (pn, version) 731 depend_tree['providermap'][name] = (pn, version)
734 732
735 for task in range(len(rq.rqdata.runq_fnid)): 733 for tid in rq.rqdata.runtaskentries:
736 taskname = rq.rqdata.runq_task[task] 734 taskname = bb.runqueue.taskname_from_tid(tid)
737 fnid = rq.rqdata.runq_fnid[task] 735 fn = bb.runqueue.fn_from_tid(tid)
738 fn = taskdata.fn_index[fnid]
739 pn = self.recipecache.pkg_fn[fn] 736 pn = self.recipecache.pkg_fn[fn]
740 version = "%s:%s-%s" % self.recipecache.pkg_pepvpr[fn] 737 version = "%s:%s-%s" % self.recipecache.pkg_pepvpr[fn]
741 if pn not in depend_tree["pn"]: 738 if pn not in depend_tree["pn"]:
@@ -756,24 +753,24 @@ class BBCooker:
756 depend_tree["pn"][pn][ei] = vars(self.recipecache)[ei][fn] 753 depend_tree["pn"][pn][ei] = vars(self.recipecache)[ei][fn]
757 754
758 755
759 for dep in rq.rqdata.runq_depends[task]: 756 for dep in rq.rqdata.runtaskentries[tid].depends:
760 depfn = taskdata.fn_index[rq.rqdata.runq_fnid[dep]] 757 depfn = bb.runqueue.fn_from_tid(dep)
761 deppn = self.recipecache.pkg_fn[depfn] 758 deppn = self.recipecache.pkg_fn[depfn]
762 dotname = "%s.%s" % (pn, rq.rqdata.runq_task[task]) 759 dotname = "%s.%s" % (pn, bb.runqueue.taskname_from_tid(dep))
763 if not dotname in depend_tree["tdepends"]: 760 if not dotname in depend_tree["tdepends"]:
764 depend_tree["tdepends"][dotname] = [] 761 depend_tree["tdepends"][dotname] = []
765 depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, rq.rqdata.runq_task[dep])) 762 depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, bb.runqueue.taskname_from_tid(dep)))
766 if fnid not in seen_fnids: 763 if fn not in seen_fns:
767 seen_fnids.append(fnid) 764 seen_fns.append(fn)
768 packages = [] 765 packages = []
769 766
770 depend_tree["depends"][pn] = [] 767 depend_tree["depends"][pn] = []
771 for dep in taskdata.depids[fnid]: 768 for dep in taskdata.depids[fn]:
772 depend_tree["depends"][pn].append(taskdata.build_names_index[dep]) 769 depend_tree["depends"][pn].append(dep)
773 770
774 depend_tree["rdepends-pn"][pn] = [] 771 depend_tree["rdepends-pn"][pn] = []
775 for rdep in taskdata.rdepids[fnid]: 772 for rdep in taskdata.rdepids[fn]:
776 depend_tree["rdepends-pn"][pn].append(taskdata.run_names_index[rdep]) 773 depend_tree["rdepends-pn"][pn].append(rdep)
777 774
778 rdepends = self.recipecache.rundeps[fn] 775 rdepends = self.recipecache.rundeps[fn]
779 for package in rdepends: 776 for package in rdepends:
@@ -805,12 +802,8 @@ class BBCooker:
805 Create a dependency tree of pkgs_to_build, returning the data. 802 Create a dependency tree of pkgs_to_build, returning the data.
806 """ 803 """
807 _, taskdata = self.prepareTreeData(pkgs_to_build, task) 804 _, taskdata = self.prepareTreeData(pkgs_to_build, task)
808 tasks_fnid = []
809 if len(taskdata.tasks_name) != 0:
810 for task in range(len(taskdata.tasks_name)):
811 tasks_fnid.append(taskdata.tasks_fnid[task])
812 805
813 seen_fnids = [] 806 seen_fns = []
814 depend_tree = {} 807 depend_tree = {}
815 depend_tree["depends"] = {} 808 depend_tree["depends"] = {}
816 depend_tree["pn"] = {} 809 depend_tree["pn"] = {}
@@ -825,9 +818,8 @@ class BBCooker:
825 cachefields = getattr(cache_class, 'cachefields', []) 818 cachefields = getattr(cache_class, 'cachefields', [])
826 extra_info = extra_info + cachefields 819 extra_info = extra_info + cachefields
827 820
828 for task in range(len(tasks_fnid)): 821 for tid in taskdata.taskentries:
829 fnid = tasks_fnid[task] 822 fn = bb.runqueue.fn_from_tid(tid)
830 fn = taskdata.fn_index[fnid]
831 pn = self.recipecache.pkg_fn[fn] 823 pn = self.recipecache.pkg_fn[fn]
832 824
833 if pn not in depend_tree["pn"]: 825 if pn not in depend_tree["pn"]:
@@ -843,33 +835,27 @@ class BBCooker:
843 for ei in extra_info: 835 for ei in extra_info:
844 depend_tree["pn"][pn][ei] = vars(self.recipecache)[ei][fn] 836 depend_tree["pn"][pn][ei] = vars(self.recipecache)[ei][fn]
845 837
846 if fnid not in seen_fnids: 838 if fn not in seen_fns:
847 seen_fnids.append(fnid) 839 seen_fns.append(fn)
848 840
849 depend_tree["depends"][pn] = [] 841 depend_tree["depends"][pn] = []
850 for dep in taskdata.depids[fnid]: 842 for item in taskdata.depids[fn]:
851 item = taskdata.build_names_index[dep]
852 pn_provider = "" 843 pn_provider = ""
853 targetid = taskdata.getbuild_id(item) 844 if dep in taskdata.build_targets and taskdata.build_targets[dep]:
854 if targetid in taskdata.build_targets and taskdata.build_targets[targetid]: 845 fn_provider = taskdata.build_targets[dep][0]
855 id = taskdata.build_targets[targetid][0]
856 fn_provider = taskdata.fn_index[id]
857 pn_provider = self.recipecache.pkg_fn[fn_provider] 846 pn_provider = self.recipecache.pkg_fn[fn_provider]
858 else: 847 else:
859 pn_provider = item 848 pn_provider = item
860 depend_tree["depends"][pn].append(pn_provider) 849 depend_tree["depends"][pn].append(pn_provider)
861 850
862 depend_tree["rdepends-pn"][pn] = [] 851 depend_tree["rdepends-pn"][pn] = []
863 for rdep in taskdata.rdepids[fnid]: 852 for rdep in taskdata.rdepids[fn]:
864 item = taskdata.run_names_index[rdep]
865 pn_rprovider = "" 853 pn_rprovider = ""
866 targetid = taskdata.getrun_id(item) 854 if rdep in taskdata.run_targets and taskdata.run_targets[rdep]:
867 if targetid in taskdata.run_targets and taskdata.run_targets[targetid]: 855 fn_rprovider = taskdata.run_targets[rdep][0]
868 id = taskdata.run_targets[targetid][0]
869 fn_rprovider = taskdata.fn_index[id]
870 pn_rprovider = self.recipecache.pkg_fn[fn_rprovider] 856 pn_rprovider = self.recipecache.pkg_fn[fn_rprovider]
871 else: 857 else:
872 pn_rprovider = item 858 pn_rprovider = rdep
873 depend_tree["rdepends-pn"][pn].append(pn_rprovider) 859 depend_tree["rdepends-pn"][pn].append(pn_rprovider)
874 860
875 depend_tree["rdepends-pkg"].update(rdepends) 861 depend_tree["rdepends-pkg"].update(rdepends)
@@ -1350,7 +1336,7 @@ class BBCooker:
1350 return False 1336 return False
1351 1337
1352 if not retval: 1338 if not retval:
1353 bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures, interrupted), self.expanded_data) 1339 bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runtaskentries), buildname, item, failures, interrupted), self.expanded_data)
1354 self.command.finishAsyncCommand(msg) 1340 self.command.finishAsyncCommand(msg)
1355 return False 1341 return False
1356 if retval is True: 1342 if retval is True:
@@ -1386,7 +1372,7 @@ class BBCooker:
1386 return False 1372 return False
1387 1373
1388 if not retval: 1374 if not retval:
1389 bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures, interrupted), self.data) 1375 bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runtaskentries), buildname, targets, failures, interrupted), self.data)
1390 self.command.finishAsyncCommand(msg) 1376 self.command.finishAsyncCommand(msg)
1391 return False 1377 return False
1392 if retval is True: 1378 if retval is True: