diff options
Diffstat (limited to 'bitbake/lib/bb/taskdata.py')
| -rw-r--r-- | bitbake/lib/bb/taskdata.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/bitbake/lib/bb/taskdata.py b/bitbake/lib/bb/taskdata.py index 39c899ebb7..6e4d149e5a 100644 --- a/bitbake/lib/bb/taskdata.py +++ b/bitbake/lib/bb/taskdata.py | |||
| @@ -172,6 +172,8 @@ class TaskData: | |||
| 172 | if fnid in self.tasks_fnid: | 172 | if fnid in self.tasks_fnid: |
| 173 | return | 173 | return |
| 174 | 174 | ||
| 175 | self.add_extra_deps(fn, dataCache) | ||
| 176 | |||
| 175 | for task in task_deps['tasks']: | 177 | for task in task_deps['tasks']: |
| 176 | 178 | ||
| 177 | # Work out task dependencies | 179 | # Work out task dependencies |
| @@ -242,6 +244,21 @@ class TaskData: | |||
| 242 | self.fail_fnid(fnid) | 244 | self.fail_fnid(fnid) |
| 243 | return | 245 | return |
| 244 | 246 | ||
| 247 | def add_extra_deps(self, fn, dataCache): | ||
| 248 | func = dataCache.extradepsfunc.get(fn, None) | ||
| 249 | if func: | ||
| 250 | bb.providers.buildWorldTargetList(dataCache) | ||
| 251 | pn = dataCache.pkg_fn[fn] | ||
| 252 | params = {'deps': dataCache.deps[fn], | ||
| 253 | 'world_target': dataCache.world_target, | ||
| 254 | 'pkg_pn': dataCache.pkg_pn, | ||
| 255 | 'self_pn': pn} | ||
| 256 | funcname = '_%s_calculate_extra_depends' % pn.replace('-', '_') | ||
| 257 | paramlist = ','.join(params.keys()) | ||
| 258 | func = 'def %s(%s):\n%s\n\n%s(%s)' % (funcname, paramlist, func, funcname, paramlist) | ||
| 259 | bb.utils.better_exec(func, params) | ||
| 260 | |||
| 261 | |||
| 245 | def have_build_target(self, target): | 262 | def have_build_target(self, target): |
| 246 | """ | 263 | """ |
| 247 | Have we a build target matching this name? | 264 | Have we a build target matching this name? |
