summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/build.py')
-rw-r--r--bitbake/lib/bb/build.py27
1 files changed, 20 insertions, 7 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index 44d08f5c55..40839a81b5 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -197,6 +197,8 @@ def exec_func(func, d, dirs = None):
197 for cdir in d.expand(cleandirs).split(): 197 for cdir in d.expand(cleandirs).split():
198 bb.utils.remove(cdir, True) 198 bb.utils.remove(cdir, True)
199 bb.utils.mkdirhier(cdir) 199 bb.utils.mkdirhier(cdir)
200 if cdir == oldcwd:
201 os.chdir(cdir)
200 202
201 if flags and dirs is None: 203 if flags and dirs is None:
202 dirs = flags.get('dirs') 204 dirs = flags.get('dirs')
@@ -395,7 +397,7 @@ def create_progress_handler(func, progress, logfile, d):
395 # Use specified regex 397 # Use specified regex
396 return bb.progress.OutOfProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile) 398 return bb.progress.OutOfProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
397 elif progress.startswith("custom:"): 399 elif progress.startswith("custom:"):
398 # Use a custom progress handler that was injected via OE_EXTRA_IMPORTS or __builtins__ 400 # Use a custom progress handler that was injected via other means
399 import functools 401 import functools
400 from types import ModuleType 402 from types import ModuleType
401 403
@@ -741,7 +743,7 @@ def _exec_task(fn, task, d, quieterr):
741 743
742 if quieterr: 744 if quieterr:
743 if not handled: 745 if not handled:
744 logger.warning(repr(exc)) 746 logger.warning(str(exc))
745 event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata) 747 event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata)
746 else: 748 else:
747 errprinted = errchk.triggered 749 errprinted = errchk.triggered
@@ -750,7 +752,7 @@ def _exec_task(fn, task, d, quieterr):
750 if verboseStdoutLogging or handled: 752 if verboseStdoutLogging or handled:
751 errprinted = True 753 errprinted = True
752 if not handled: 754 if not handled:
753 logger.error(repr(exc)) 755 logger.error(str(exc))
754 event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata) 756 event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata)
755 return 1 757 return 1
756 758
@@ -930,9 +932,13 @@ def add_tasks(tasklist, d):
930 # don't assume holding a reference 932 # don't assume holding a reference
931 d.setVar('_task_deps', task_deps) 933 d.setVar('_task_deps', task_deps)
932 934
935def ensure_task_prefix(name):
936 if name[:3] != "do_":
937 name = "do_" + name
938 return name
939
933def addtask(task, before, after, d): 940def addtask(task, before, after, d):
934 if task[:3] != "do_": 941 task = ensure_task_prefix(task)
935 task = "do_" + task
936 942
937 d.setVarFlag(task, "task", 1) 943 d.setVarFlag(task, "task", 1)
938 bbtasks = d.getVar('__BBTASKS', False) or [] 944 bbtasks = d.getVar('__BBTASKS', False) or []
@@ -944,19 +950,20 @@ def addtask(task, before, after, d):
944 if after is not None: 950 if after is not None:
945 # set up deps for function 951 # set up deps for function
946 for entry in after.split(): 952 for entry in after.split():
953 entry = ensure_task_prefix(entry)
947 if entry not in existing: 954 if entry not in existing:
948 existing.append(entry) 955 existing.append(entry)
949 d.setVarFlag(task, "deps", existing) 956 d.setVarFlag(task, "deps", existing)
950 if before is not None: 957 if before is not None:
951 # set up things that depend on this func 958 # set up things that depend on this func
952 for entry in before.split(): 959 for entry in before.split():
960 entry = ensure_task_prefix(entry)
953 existing = d.getVarFlag(entry, "deps", False) or [] 961 existing = d.getVarFlag(entry, "deps", False) or []
954 if task not in existing: 962 if task not in existing:
955 d.setVarFlag(entry, "deps", [task] + existing) 963 d.setVarFlag(entry, "deps", [task] + existing)
956 964
957def deltask(task, d): 965def deltask(task, d):
958 if task[:3] != "do_": 966 task = ensure_task_prefix(task)
959 task = "do_" + task
960 967
961 bbtasks = d.getVar('__BBTASKS', False) or [] 968 bbtasks = d.getVar('__BBTASKS', False) or []
962 if task in bbtasks: 969 if task in bbtasks:
@@ -1021,3 +1028,9 @@ def tasksbetween(task_start, task_end, d):
1021 chain.pop() 1028 chain.pop()
1022 follow_chain(task_start, task_end) 1029 follow_chain(task_start, task_end)
1023 return outtasks 1030 return outtasks
1031
1032def listtasks(d):
1033 """
1034 Return the list of tasks in the current recipe.
1035 """
1036 return tuple(d.getVar('__BBTASKS', False) or ())