diff options
Diffstat (limited to 'bitbake/lib/bb/build.py')
-rw-r--r-- | bitbake/lib/bb/build.py | 27 |
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 | ||
935 | def ensure_task_prefix(name): | ||
936 | if name[:3] != "do_": | ||
937 | name = "do_" + name | ||
938 | return name | ||
939 | |||
933 | def addtask(task, before, after, d): | 940 | def 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 | ||
957 | def deltask(task, d): | 965 | def 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 | |||
1032 | def listtasks(d): | ||
1033 | """ | ||
1034 | Return the list of tasks in the current recipe. | ||
1035 | """ | ||
1036 | return tuple(d.getVar('__BBTASKS', False) or ()) | ||