diff options
Diffstat (limited to 'bitbake/lib/bb/taskdata.py')
| -rw-r--r-- | bitbake/lib/bb/taskdata.py | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/bitbake/lib/bb/taskdata.py b/bitbake/lib/bb/taskdata.py index 976e0ca1f9..4a88e75f6d 100644 --- a/bitbake/lib/bb/taskdata.py +++ b/bitbake/lib/bb/taskdata.py | |||
| @@ -23,8 +23,20 @@ Task data collection and handling | |||
| 23 | # with this program; if not, write to the Free Software Foundation, Inc., | 23 | # with this program; if not, write to the Free Software Foundation, Inc., |
| 24 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | 24 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| 25 | 25 | ||
| 26 | from bb import data, event, mkdirhier, utils | 26 | import bb |
| 27 | import bb, os | 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 | ||
| 28 | 40 | ||
| 29 | class TaskData: | 41 | class TaskData: |
| 30 | """ | 42 | """ |
| @@ -264,7 +276,7 @@ class TaskData: | |||
| 264 | """ | 276 | """ |
| 265 | unresolved = [] | 277 | unresolved = [] |
| 266 | for target in self.build_names_index: | 278 | for target in self.build_names_index: |
| 267 | if target in dataCache.ignored_dependencies: | 279 | if re_match_strings(target, dataCache.ignored_dependencies): |
| 268 | continue | 280 | continue |
| 269 | if self.build_names_index.index(target) in self.failed_deps: | 281 | if self.build_names_index.index(target) in self.failed_deps: |
| 270 | continue | 282 | continue |
| @@ -279,7 +291,7 @@ class TaskData: | |||
| 279 | """ | 291 | """ |
| 280 | unresolved = [] | 292 | unresolved = [] |
| 281 | for target in self.run_names_index: | 293 | for target in self.run_names_index: |
| 282 | if target in dataCache.ignored_dependencies: | 294 | if re_match_strings(target, dataCache.ignored_dependencies): |
| 283 | continue | 295 | continue |
| 284 | if self.run_names_index.index(target) in self.failed_rdeps: | 296 | if self.run_names_index.index(target) in self.failed_rdeps: |
| 285 | continue | 297 | continue |
| @@ -359,7 +371,7 @@ class TaskData: | |||
| 359 | added internally during dependency resolution | 371 | added internally during dependency resolution |
| 360 | """ | 372 | """ |
| 361 | 373 | ||
| 362 | if item in dataCache.ignored_dependencies: | 374 | if re_match_strings(item, dataCache.ignored_dependencies): |
| 363 | return | 375 | return |
| 364 | 376 | ||
| 365 | if not item in dataCache.providers: | 377 | if not item in dataCache.providers: |
| @@ -367,7 +379,7 @@ class TaskData: | |||
| 367 | 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))) | 379 | 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))) |
| 368 | else: | 380 | else: |
| 369 | bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item)) | 381 | bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item)) |
| 370 | bb.event.fire(bb.event.NoProvider(item, cfgData)) | 382 | bb.event.fire(bb.event.NoProvider(item), cfgData) |
| 371 | raise bb.providers.NoProvider(item) | 383 | raise bb.providers.NoProvider(item) |
| 372 | 384 | ||
| 373 | if self.have_build_target(item): | 385 | if self.have_build_target(item): |
| @@ -380,7 +392,7 @@ class TaskData: | |||
| 380 | 392 | ||
| 381 | if not eligible: | 393 | if not eligible: |
| 382 | 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))) | 394 | 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))) |
| 383 | bb.event.fire(bb.event.NoProvider(item, cfgData)) | 395 | bb.event.fire(bb.event.NoProvider(item), cfgData) |
| 384 | raise bb.providers.NoProvider(item) | 396 | raise bb.providers.NoProvider(item) |
| 385 | 397 | ||
| 386 | if len(eligible) > 1 and foundUnique == False: | 398 | if len(eligible) > 1 and foundUnique == False: |
| @@ -390,7 +402,7 @@ class TaskData: | |||
| 390 | providers_list.append(dataCache.pkg_fn[fn]) | 402 | providers_list.append(dataCache.pkg_fn[fn]) |
| 391 | bb.msg.note(1, bb.msg.domain.Provider, "multiple providers are available for %s (%s);" % (item, ", ".join(providers_list))) | 403 | bb.msg.note(1, bb.msg.domain.Provider, "multiple providers are available for %s (%s);" % (item, ", ".join(providers_list))) |
| 392 | bb.msg.note(1, bb.msg.domain.Provider, "consider defining PREFERRED_PROVIDER_%s" % item) | 404 | bb.msg.note(1, bb.msg.domain.Provider, "consider defining PREFERRED_PROVIDER_%s" % item) |
| 393 | bb.event.fire(bb.event.MultipleProviders(item, providers_list, cfgData)) | 405 | bb.event.fire(bb.event.MultipleProviders(item, providers_list), cfgData) |
| 394 | self.consider_msgs_cache.append(item) | 406 | self.consider_msgs_cache.append(item) |
| 395 | 407 | ||
| 396 | for fn in eligible: | 408 | for fn in eligible: |
| @@ -410,7 +422,7 @@ class TaskData: | |||
| 410 | (takes item names from RDEPENDS/PACKAGES namespace) | 422 | (takes item names from RDEPENDS/PACKAGES namespace) |
| 411 | """ | 423 | """ |
| 412 | 424 | ||
| 413 | if item in dataCache.ignored_dependencies: | 425 | if re_match_strings(item, dataCache.ignored_dependencies): |
| 414 | return | 426 | return |
| 415 | 427 | ||
| 416 | if self.have_runtime_target(item): | 428 | if self.have_runtime_target(item): |
| @@ -420,7 +432,7 @@ class TaskData: | |||
| 420 | 432 | ||
| 421 | if not all_p: | 433 | if not all_p: |
| 422 | 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)) | 434 | 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)) |
| 423 | bb.event.fire(bb.event.NoProvider(item, cfgData, runtime=True)) | 435 | bb.event.fire(bb.event.NoProvider(item, runtime=True), cfgData) |
| 424 | raise bb.providers.NoRProvider(item) | 436 | raise bb.providers.NoRProvider(item) |
| 425 | 437 | ||
| 426 | eligible, numberPreferred = bb.providers.filterProvidersRunTime(all_p, item, cfgData, dataCache) | 438 | eligible, numberPreferred = bb.providers.filterProvidersRunTime(all_p, item, cfgData, dataCache) |
| @@ -428,7 +440,7 @@ class TaskData: | |||
| 428 | 440 | ||
| 429 | if not eligible: | 441 | if not eligible: |
| 430 | 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)) | 442 | 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)) |
| 431 | bb.event.fire(bb.event.NoProvider(item, cfgData, runtime=True)) | 443 | bb.event.fire(bb.event.NoProvider(item, runtime=True), cfgData) |
| 432 | raise bb.providers.NoRProvider(item) | 444 | raise bb.providers.NoRProvider(item) |
| 433 | 445 | ||
| 434 | if len(eligible) > 1 and numberPreferred == 0: | 446 | if len(eligible) > 1 and numberPreferred == 0: |
| @@ -438,7 +450,7 @@ class TaskData: | |||
| 438 | providers_list.append(dataCache.pkg_fn[fn]) | 450 | providers_list.append(dataCache.pkg_fn[fn]) |
| 439 | bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (%s);" % (item, ", ".join(providers_list))) | 451 | bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (%s);" % (item, ", ".join(providers_list))) |
| 440 | bb.msg.note(2, bb.msg.domain.Provider, "consider defining a PREFERRED_PROVIDER entry to match runtime %s" % item) | 452 | bb.msg.note(2, bb.msg.domain.Provider, "consider defining a PREFERRED_PROVIDER entry to match runtime %s" % item) |
| 441 | bb.event.fire(bb.event.MultipleProviders(item,providers_list, cfgData, runtime=True)) | 453 | bb.event.fire(bb.event.MultipleProviders(item,providers_list, runtime=True), cfgData) |
| 442 | self.consider_msgs_cache.append(item) | 454 | self.consider_msgs_cache.append(item) |
| 443 | 455 | ||
| 444 | if numberPreferred > 1: | 456 | if numberPreferred > 1: |
| @@ -448,7 +460,7 @@ class TaskData: | |||
| 448 | providers_list.append(dataCache.pkg_fn[fn]) | 460 | providers_list.append(dataCache.pkg_fn[fn]) |
| 449 | 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))) | 461 | 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))) |
| 450 | bb.msg.note(2, bb.msg.domain.Provider, "consider defining only one PREFERRED_PROVIDER entry to match runtime %s" % item) | 462 | bb.msg.note(2, bb.msg.domain.Provider, "consider defining only one PREFERRED_PROVIDER entry to match runtime %s" % item) |
| 451 | bb.event.fire(bb.event.MultipleProviders(item,providers_list, cfgData, runtime=True)) | 463 | bb.event.fire(bb.event.MultipleProviders(item,providers_list, runtime=True), cfgData) |
| 452 | self.consider_msgs_cache.append(item) | 464 | self.consider_msgs_cache.append(item) |
| 453 | 465 | ||
| 454 | # run through the list until we find one that we can build | 466 | # run through the list until we find one that we can build |
