summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/runqueue.py35
1 files changed, 16 insertions, 19 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 774cdbca0b..7d4cbed775 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -926,38 +926,35 @@ class RunQueueData:
926 # 926 #
927 # Once all active tasks are marked, prune the ones we don't need. 927 # Once all active tasks are marked, prune the ones we don't need.
928 928
929 delcount = {}
930 for tid in list(self.runtaskentries.keys()):
931 if tid not in runq_build:
932 delcount[tid] = self.runtaskentries[tid]
933 del self.runtaskentries[tid]
934
935 # Handle --runall 929 # Handle --runall
936 if self.cooker.configuration.runall: 930 if self.cooker.configuration.runall:
937 # re-run the mark_active and then drop unused tasks from new list 931 # re-run the mark_active and then drop unused tasks from new list
938 runq_build = {} 932 reduced_tasklist = set(self.runtaskentries.keys())
933 for tid in list(self.runtaskentries.keys()):
934 if tid not in runq_build:
935 reduced_tasklist.remove(tid)
939 936
940 for task in self.cooker.configuration.runall: 937 for task in self.cooker.configuration.runall:
941 if not task.startswith("do_"): 938 if not task.startswith("do_"):
942 task = "do_{0}".format(task) 939 task = "do_{0}".format(task)
943 runall_tids = set() 940 runall_tids = set()
944 for tid in list(self.runtaskentries): 941 for tid in reduced_tasklist:
945 wanttid = "{0}:{1}".format(fn_from_tid(tid), task) 942 wanttid = "{0}:{1}".format(fn_from_tid(tid), task)
946 if wanttid in delcount:
947 self.runtaskentries[wanttid] = delcount[wanttid]
948 if wanttid in self.runtaskentries: 943 if wanttid in self.runtaskentries:
949 runall_tids.add(wanttid) 944 runall_tids.add(wanttid)
950 945
951 for tid in list(runall_tids): 946 for tid in list(runall_tids):
952 mark_active(tid,1) 947 mark_active(tid, 1)
953 if self.cooker.configuration.force: 948 if self.cooker.configuration.force:
954 invalidate_task(tid, False) 949 invalidate_task(tid, False)
955 950
956 for tid in list(self.runtaskentries.keys()): 951 delcount = set()
957 if tid not in runq_build: 952 for tid in list(self.runtaskentries.keys()):
958 delcount[tid] = self.runtaskentries[tid] 953 if tid not in runq_build:
959 del self.runtaskentries[tid] 954 delcount.add(tid)
955 del self.runtaskentries[tid]
960 956
957 if self.cooker.configuration.runall:
961 if not self.runtaskentries: 958 if not self.runtaskentries:
962 bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets))) 959 bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets)))
963 960
@@ -971,16 +968,16 @@ class RunQueueData:
971 for task in self.cooker.configuration.runonly: 968 for task in self.cooker.configuration.runonly:
972 if not task.startswith("do_"): 969 if not task.startswith("do_"):
973 task = "do_{0}".format(task) 970 task = "do_{0}".format(task)
974 runonly_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == task } 971 runonly_tids = [k for k in self.runtaskentries.keys() if taskname_from_tid(k) == task]
975 972
976 for tid in list(runonly_tids): 973 for tid in runonly_tids:
977 mark_active(tid,1) 974 mark_active(tid, 1)
978 if self.cooker.configuration.force: 975 if self.cooker.configuration.force:
979 invalidate_task(tid, False) 976 invalidate_task(tid, False)
980 977
981 for tid in list(self.runtaskentries.keys()): 978 for tid in list(self.runtaskentries.keys()):
982 if tid not in runq_build: 979 if tid not in runq_build:
983 delcount[tid] = self.runtaskentries[tid] 980 delcount.add(tid)
984 del self.runtaskentries[tid] 981 del self.runtaskentries[tid]
985 982
986 if not self.runtaskentries: 983 if not self.runtaskentries: