diff options
| author | Richard Purdie <rpurdie@linux.intel.com> | 2010-01-19 14:48:19 +0000 |
|---|---|---|
| committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-01-19 14:48:19 +0000 |
| commit | 22a271aaa99daeb6b29c42c2c1dc670bf204310e (patch) | |
| tree | d2690b66e7a613820f34ceaecbce65809cbd22a3 /bitbake-dev/lib/bb/taskdata.py | |
| parent | cefe87fc3c4202e942f34666813bc094df2ffb4b (diff) | |
| download | poky-22a271aaa99daeb6b29c42c2c1dc670bf204310e.tar.gz | |
bitbake-dev: Sync with upstream
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'bitbake-dev/lib/bb/taskdata.py')
| -rw-r--r-- | bitbake-dev/lib/bb/taskdata.py | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/bitbake-dev/lib/bb/taskdata.py b/bitbake-dev/lib/bb/taskdata.py index 73ec2aa750..e3a60b9884 100644 --- a/bitbake-dev/lib/bb/taskdata.py +++ b/bitbake-dev/lib/bb/taskdata.py | |||
| @@ -25,6 +25,19 @@ Task data collection and handling | |||
| 25 | 25 | ||
| 26 | import bb | 26 | import bb |
| 27 | 27 | ||
| 28 | def re_match_strings(target, strings): | ||
| 29 | """ | ||
| 30 | Whether or not the string 'target' matches | ||
| 31 | any one string of the strings which can be regular expression string | ||
| 32 | """ | ||
| 33 | import re | ||
| 34 | |||
| 35 | for name in strings: | ||
| 36 | if (name==target or | ||
| 37 | re.search(name,target)!=None): | ||
| 38 | return True | ||
| 39 | return False | ||
| 40 | |||
| 28 | class TaskData: | 41 | class TaskData: |
| 29 | """ | 42 | """ |
| 30 | BitBake Task Data implementation | 43 | BitBake Task Data implementation |
| @@ -261,7 +274,7 @@ class TaskData: | |||
| 261 | """ | 274 | """ |
| 262 | unresolved = [] | 275 | unresolved = [] |
| 263 | for target in self.build_names_index: | 276 | for target in self.build_names_index: |
| 264 | if target in dataCache.ignored_dependencies: | 277 | if re_match_strings(target, dataCache.ignored_dependencies): |
| 265 | continue | 278 | continue |
| 266 | if self.build_names_index.index(target) in self.failed_deps: | 279 | if self.build_names_index.index(target) in self.failed_deps: |
| 267 | continue | 280 | continue |
| @@ -276,7 +289,7 @@ class TaskData: | |||
| 276 | """ | 289 | """ |
| 277 | unresolved = [] | 290 | unresolved = [] |
| 278 | for target in self.run_names_index: | 291 | for target in self.run_names_index: |
| 279 | if target in dataCache.ignored_dependencies: | 292 | if re_match_strings(target, dataCache.ignored_dependencies): |
| 280 | continue | 293 | continue |
| 281 | if self.run_names_index.index(target) in self.failed_rdeps: | 294 | if self.run_names_index.index(target) in self.failed_rdeps: |
| 282 | continue | 295 | continue |
| @@ -356,7 +369,7 @@ class TaskData: | |||
| 356 | added internally during dependency resolution | 369 | added internally during dependency resolution |
| 357 | """ | 370 | """ |
| 358 | 371 | ||
| 359 | if item in dataCache.ignored_dependencies: | 372 | if re_match_strings(item, dataCache.ignored_dependencies): |
| 360 | return | 373 | return |
| 361 | 374 | ||
| 362 | if not item in dataCache.providers: | 375 | if not item in dataCache.providers: |
| @@ -364,7 +377,7 @@ class TaskData: | |||
| 364 | bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (item, self.get_dependees_str(item))) | 377 | bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (item, self.get_dependees_str(item))) |
| 365 | else: | 378 | else: |
| 366 | bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item)) | 379 | bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item)) |
| 367 | bb.event.fire(bb.event.NoProvider(item, cfgData)) | 380 | bb.event.fire(bb.event.NoProvider(item), cfgData) |
| 368 | raise bb.providers.NoProvider(item) | 381 | raise bb.providers.NoProvider(item) |
| 369 | 382 | ||
| 370 | if self.have_build_target(item): | 383 | if self.have_build_target(item): |
| @@ -377,7 +390,7 @@ class TaskData: | |||
| 377 | 390 | ||
| 378 | if not eligible: | 391 | if not eligible: |
| 379 | bb.msg.note(2, bb.msg.domain.Provider, "No buildable provider PROVIDES '%s' but '%s' DEPENDS on or otherwise requires it. Enable debugging and see earlier logs to find unbuildable providers." % (item, self.get_dependees_str(item))) | 392 | bb.msg.note(2, bb.msg.domain.Provider, "No buildable provider PROVIDES '%s' but '%s' DEPENDS on or otherwise requires it. Enable debugging and see earlier logs to find unbuildable providers." % (item, self.get_dependees_str(item))) |
| 380 | bb.event.fire(bb.event.NoProvider(item, cfgData)) | 393 | bb.event.fire(bb.event.NoProvider(item), cfgData) |
| 381 | raise bb.providers.NoProvider(item) | 394 | raise bb.providers.NoProvider(item) |
| 382 | 395 | ||
| 383 | if len(eligible) > 1 and foundUnique == False: | 396 | if len(eligible) > 1 and foundUnique == False: |
| @@ -387,7 +400,7 @@ class TaskData: | |||
| 387 | providers_list.append(dataCache.pkg_fn[fn]) | 400 | providers_list.append(dataCache.pkg_fn[fn]) |
| 388 | bb.msg.note(1, bb.msg.domain.Provider, "multiple providers are available for %s (%s);" % (item, ", ".join(providers_list))) | 401 | bb.msg.note(1, bb.msg.domain.Provider, "multiple providers are available for %s (%s);" % (item, ", ".join(providers_list))) |
| 389 | bb.msg.note(1, bb.msg.domain.Provider, "consider defining PREFERRED_PROVIDER_%s" % item) | 402 | bb.msg.note(1, bb.msg.domain.Provider, "consider defining PREFERRED_PROVIDER_%s" % item) |
| 390 | bb.event.fire(bb.event.MultipleProviders(item, providers_list, cfgData)) | 403 | bb.event.fire(bb.event.MultipleProviders(item, providers_list), cfgData) |
| 391 | self.consider_msgs_cache.append(item) | 404 | self.consider_msgs_cache.append(item) |
| 392 | 405 | ||
| 393 | for fn in eligible: | 406 | for fn in eligible: |
| @@ -407,7 +420,7 @@ class TaskData: | |||
| 407 | (takes item names from RDEPENDS/PACKAGES namespace) | 420 | (takes item names from RDEPENDS/PACKAGES namespace) |
| 408 | """ | 421 | """ |
| 409 | 422 | ||
| 410 | if item in dataCache.ignored_dependencies: | 423 | if re_match_strings(item, dataCache.ignored_dependencies): |
| 411 | return | 424 | return |
| 412 | 425 | ||
| 413 | if self.have_runtime_target(item): | 426 | if self.have_runtime_target(item): |
| @@ -417,7 +430,7 @@ class TaskData: | |||
| 417 | 430 | ||
| 418 | if not all_p: | 431 | if not all_p: |
| 419 | bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables" % (self.get_rdependees_str(item), item)) | 432 | bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables" % (self.get_rdependees_str(item), item)) |
| 420 | bb.event.fire(bb.event.NoProvider(item, cfgData, runtime=True)) | 433 | bb.event.fire(bb.event.NoProvider(item, runtime=True), cfgData) |
| 421 | raise bb.providers.NoRProvider(item) | 434 | raise bb.providers.NoRProvider(item) |
| 422 | 435 | ||
| 423 | eligible, numberPreferred = bb.providers.filterProvidersRunTime(all_p, item, cfgData, dataCache) | 436 | eligible, numberPreferred = bb.providers.filterProvidersRunTime(all_p, item, cfgData, dataCache) |
| @@ -425,7 +438,7 @@ class TaskData: | |||
| 425 | 438 | ||
| 426 | if not eligible: | 439 | if not eligible: |
| 427 | bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables of any buildable targets.\nEnable debugging and see earlier logs to find unbuildable targets." % (self.get_rdependees_str(item), item)) | 440 | bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables of any buildable targets.\nEnable debugging and see earlier logs to find unbuildable targets." % (self.get_rdependees_str(item), item)) |
| 428 | bb.event.fire(bb.event.NoProvider(item, cfgData, runtime=True)) | 441 | bb.event.fire(bb.event.NoProvider(item, runtime=True), cfgData) |
| 429 | raise bb.providers.NoRProvider(item) | 442 | raise bb.providers.NoRProvider(item) |
| 430 | 443 | ||
| 431 | if len(eligible) > 1 and numberPreferred == 0: | 444 | if len(eligible) > 1 and numberPreferred == 0: |
| @@ -435,7 +448,7 @@ class TaskData: | |||
| 435 | providers_list.append(dataCache.pkg_fn[fn]) | 448 | providers_list.append(dataCache.pkg_fn[fn]) |
| 436 | bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (%s);" % (item, ", ".join(providers_list))) | 449 | bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (%s);" % (item, ", ".join(providers_list))) |
| 437 | bb.msg.note(2, bb.msg.domain.Provider, "consider defining a PREFERRED_PROVIDER entry to match runtime %s" % item) | 450 | bb.msg.note(2, bb.msg.domain.Provider, "consider defining a PREFERRED_PROVIDER entry to match runtime %s" % item) |
| 438 | bb.event.fire(bb.event.MultipleProviders(item,providers_list, cfgData, runtime=True)) | 451 | bb.event.fire(bb.event.MultipleProviders(item,providers_list, runtime=True), cfgData) |
| 439 | self.consider_msgs_cache.append(item) | 452 | self.consider_msgs_cache.append(item) |
| 440 | 453 | ||
| 441 | if numberPreferred > 1: | 454 | if numberPreferred > 1: |
| @@ -445,7 +458,7 @@ class TaskData: | |||
| 445 | providers_list.append(dataCache.pkg_fn[fn]) | 458 | providers_list.append(dataCache.pkg_fn[fn]) |
| 446 | bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (top %s entries preferred) (%s);" % (item, numberPreferred, ", ".join(providers_list))) | 459 | bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (top %s entries preferred) (%s);" % (item, numberPreferred, ", ".join(providers_list))) |
| 447 | bb.msg.note(2, bb.msg.domain.Provider, "consider defining only one PREFERRED_PROVIDER entry to match runtime %s" % item) | 460 | bb.msg.note(2, bb.msg.domain.Provider, "consider defining only one PREFERRED_PROVIDER entry to match runtime %s" % item) |
| 448 | bb.event.fire(bb.event.MultipleProviders(item,providers_list, cfgData, runtime=True)) | 461 | bb.event.fire(bb.event.MultipleProviders(item,providers_list, runtime=True), cfgData) |
| 449 | self.consider_msgs_cache.append(item) | 462 | self.consider_msgs_cache.append(item) |
| 450 | 463 | ||
| 451 | # run through the list until we find one that we can build | 464 | # run through the list until we find one that we can build |
