runqueue.py: Don't create recurisve tasks if they don't exist but still follow depend...
authorRichard Purdie <rpurdie@linux.intel.com>
Thu, 4 Jan 2007 22:55:21 +0000 (22:55 +0000)
committerRichard Purdie <rpurdie@linux.intel.com>
Thu, 4 Jan 2007 22:55:21 +0000 (22:55 +0000)
lib/bb/runqueue.py

index d69d916..a682b54 100644 (file)
@@ -107,9 +107,13 @@ class RunQueue:
                         depdata = taskData.build_targets[depid][0]
                         if depdata:
                             dep = taskData.fn_index[depdata]
-                            taskid = taskData.gettask_id(dep, taskname)
-                            depends.append(taskid)
-                            fnid = taskData.tasks_fnid[taskid]
+                            # Need to avoid creating new tasks here
+                            taskid = taskData.gettask_id(dep, taskname, False)
+                            if taskid:
+                                depends.append(taskid)
+                                fnid = taskData.tasks_fnid[taskid]
+                            else:
+                                fnid = taskData.getfn_id(dep)
                             for nextdepid in taskData.depids[fnid]:
                                 if nextdepid not in dep_seen:
                                     add_recursive_build(nextdepid)
@@ -130,9 +134,13 @@ class RunQueue:
                         depdata = taskData.run_targets[rdepid][0]
                         if depdata:
                             dep = taskData.fn_index[depdata]
-                            taskid = taskData.gettask_id(dep, taskname)
-                            depends.append(taskid)
-                            fnid = taskData.tasks_fnid[taskid]
+                            # Need to avoid creating new tasks here
+                            taskid = taskData.gettask_id(dep, taskname, False)
+                            if taskid:
+                                depends.append(taskid)
+                                fnid = taskData.tasks_fnid[taskid]
+                            else:
+                                fnid = taskData.getfn_id(dep)
                             for nextdepid in taskData.depids[fnid]:
                                 if nextdepid not in dep_seen:
                                     add_recursive_build(nextdepid)
@@ -146,11 +154,11 @@ class RunQueue:
                 if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']:
                     dep_seen = []
                     rdep_seen = []
-                    taskname = task_deps['recrdeptask'][taskData.tasks_name[task]]
-                    for depid in taskData.depids[fnid]:
-                        add_recursive_build(depid)
-                    for rdepid in taskData.rdepids[fnid]:
-                        add_recursive_run(rdepid)
+                    for taskname in task_deps['recrdeptask'][taskData.tasks_name[task]].split():
+                        for depid in taskData.depids[fnid]:
+                            add_recursive_build(depid)
+                        for rdepid in taskData.rdepids[fnid]:
+                            add_recursive_run(rdepid)
 
                 #Prune self references
                 if task in depends: