diff options
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/build.py | 13 | ||||
-rw-r--r-- | bitbake/lib/bb/tests/parse.py | 6 |
2 files changed, 14 insertions, 5 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py index ab8bce3d57..d226aadacb 100644 --- a/bitbake/lib/bb/build.py +++ b/bitbake/lib/bb/build.py | |||
@@ -932,9 +932,13 @@ def add_tasks(tasklist, d): | |||
932 | # don't assume holding a reference | 932 | # don't assume holding a reference |
933 | d.setVar('_task_deps', task_deps) | 933 | d.setVar('_task_deps', task_deps) |
934 | 934 | ||
935 | def ensure_task_prefix(name): | ||
936 | if name[:3] != "do_": | ||
937 | name = "do_" + name | ||
938 | return name | ||
939 | |||
935 | def addtask(task, before, after, d): | 940 | def addtask(task, before, after, d): |
936 | if task[:3] != "do_": | 941 | task = ensure_task_prefix(task) |
937 | task = "do_" + task | ||
938 | 942 | ||
939 | d.setVarFlag(task, "task", 1) | 943 | d.setVarFlag(task, "task", 1) |
940 | bbtasks = d.getVar('__BBTASKS', False) or [] | 944 | bbtasks = d.getVar('__BBTASKS', False) or [] |
@@ -946,19 +950,20 @@ def addtask(task, before, after, d): | |||
946 | if after is not None: | 950 | if after is not None: |
947 | # set up deps for function | 951 | # set up deps for function |
948 | for entry in after.split(): | 952 | for entry in after.split(): |
953 | entry = ensure_task_prefix(entry) | ||
949 | if entry not in existing: | 954 | if entry not in existing: |
950 | existing.append(entry) | 955 | existing.append(entry) |
951 | d.setVarFlag(task, "deps", existing) | 956 | d.setVarFlag(task, "deps", existing) |
952 | if before is not None: | 957 | if before is not None: |
953 | # set up things that depend on this func | 958 | # set up things that depend on this func |
954 | for entry in before.split(): | 959 | for entry in before.split(): |
960 | entry = ensure_task_prefix(entry) | ||
955 | existing = d.getVarFlag(entry, "deps", False) or [] | 961 | existing = d.getVarFlag(entry, "deps", False) or [] |
956 | if task not in existing: | 962 | if task not in existing: |
957 | d.setVarFlag(entry, "deps", [task] + existing) | 963 | d.setVarFlag(entry, "deps", [task] + existing) |
958 | 964 | ||
959 | def deltask(task, d): | 965 | def deltask(task, d): |
960 | if task[:3] != "do_": | 966 | task = ensure_task_prefix(task) |
961 | task = "do_" + task | ||
962 | 967 | ||
963 | bbtasks = d.getVar('__BBTASKS', False) or [] | 968 | bbtasks = d.getVar('__BBTASKS', False) or [] |
964 | if task in bbtasks: | 969 | if task in bbtasks: |
diff --git a/bitbake/lib/bb/tests/parse.py b/bitbake/lib/bb/tests/parse.py index 97df2c4590..410679d5a1 100644 --- a/bitbake/lib/bb/tests/parse.py +++ b/bitbake/lib/bb/tests/parse.py | |||
@@ -188,6 +188,9 @@ addtask do_mytask3 | |||
188 | deltask do_mytask3# comment | 188 | deltask do_mytask3# comment |
189 | deltask do_mytask4 # comment2 | 189 | deltask do_mytask4 # comment2 |
190 | 190 | ||
191 | # Ensure a missing task prefix on after works | ||
192 | addtask do_mytask5 after mytask | ||
193 | |||
191 | MYVAR = "do_patch" | 194 | MYVAR = "do_patch" |
192 | EMPTYVAR = "" | 195 | EMPTYVAR = "" |
193 | deltask do_fetch ${MYVAR} ${EMPTYVAR} | 196 | deltask do_fetch ${MYVAR} ${EMPTYVAR} |
@@ -198,7 +201,8 @@ deltask ${EMPTYVAR} | |||
198 | f = self.parsehelper(self.addtask_deltask) | 201 | f = self.parsehelper(self.addtask_deltask) |
199 | d = bb.parse.handle(f.name, self.d)[''] | 202 | d = bb.parse.handle(f.name, self.d)[''] |
200 | 203 | ||
201 | self.assertEqual(['do_fetch2', 'do_patch2', 'do_myplaintask', 'do_mytask', 'do_mytask2'], d.getVar("__BBTASKS")) | 204 | self.assertEqual(['do_fetch2', 'do_patch2', 'do_myplaintask', 'do_mytask', 'do_mytask2', 'do_mytask5'], d.getVar("__BBTASKS")) |
205 | self.assertEqual(['do_mytask'], d.getVarFlag("do_mytask5", "deps")) | ||
202 | 206 | ||
203 | broken_multiline_comment = """ | 207 | broken_multiline_comment = """ |
204 | # First line of comment \\ | 208 | # First line of comment \\ |