diff options
| -rw-r--r-- | meta/classes/buildhistory.bbclass | 18 | ||||
| -rw-r--r-- | meta/lib/oe/sdk.py | 19 |
2 files changed, 25 insertions, 12 deletions
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass index c26dffc058..779a1a67e0 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass | |||
| @@ -590,25 +590,19 @@ END | |||
| 590 | python buildhistory_get_extra_sdkinfo() { | 590 | python buildhistory_get_extra_sdkinfo() { |
| 591 | import operator | 591 | import operator |
| 592 | import math | 592 | import math |
| 593 | from oe.sdk import get_extra_sdkinfo | ||
| 594 | |||
| 595 | sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache') | ||
| 596 | extra_info = get_extra_sdkinfo(sstate_dir) | ||
| 593 | 597 | ||
| 594 | if d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext' and \ | 598 | if d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext' and \ |
| 595 | "sdk" in (d.getVar('BUILDHISTORY_FEATURES') or "").split(): | 599 | "sdk" in (d.getVar('BUILDHISTORY_FEATURES') or "").split(): |
| 596 | tasksizes = {} | ||
| 597 | filesizes = {} | ||
| 598 | for root, _, files in os.walk(d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache')): | ||
| 599 | for fn in files: | ||
| 600 | if fn.endswith('.tgz'): | ||
| 601 | fsize = int(math.ceil(float(os.path.getsize(os.path.join(root, fn))) / 1024)) | ||
| 602 | task = fn.rsplit(':', 1)[1].split('_', 1)[1].split('.')[0] | ||
| 603 | origtotal = tasksizes.get(task, 0) | ||
| 604 | tasksizes[task] = origtotal + fsize | ||
| 605 | filesizes[fn] = fsize | ||
| 606 | with open(d.expand('${BUILDHISTORY_DIR_SDK}/sstate-package-sizes.txt'), 'w') as f: | 600 | with open(d.expand('${BUILDHISTORY_DIR_SDK}/sstate-package-sizes.txt'), 'w') as f: |
| 607 | filesizes_sorted = sorted(filesizes.items(), key=operator.itemgetter(1, 0), reverse=True) | 601 | filesizes_sorted = sorted(extra_info['filesizes'].items(), key=operator.itemgetter(1, 0), reverse=True) |
| 608 | for fn, size in filesizes_sorted: | 602 | for fn, size in filesizes_sorted: |
| 609 | f.write('%10d KiB %s\n' % (size, fn)) | 603 | f.write('%10d KiB %s\n' % (size, fn)) |
| 610 | with open(d.expand('${BUILDHISTORY_DIR_SDK}/sstate-task-sizes.txt'), 'w') as f: | 604 | with open(d.expand('${BUILDHISTORY_DIR_SDK}/sstate-task-sizes.txt'), 'w') as f: |
| 611 | tasksizes_sorted = sorted(tasksizes.items(), key=operator.itemgetter(1, 0), reverse=True) | 605 | tasksizes_sorted = sorted(extra_info['tasksizes'].items(), key=operator.itemgetter(1, 0), reverse=True) |
| 612 | for task, size in tasksizes_sorted: | 606 | for task, size in tasksizes_sorted: |
| 613 | f.write('%10d KiB %s\n' % (size, task)) | 607 | f.write('%10d KiB %s\n' % (size, task)) |
| 614 | } | 608 | } |
diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py index deb823b6ec..1c5409e7e1 100644 --- a/meta/lib/oe/sdk.py +++ b/meta/lib/oe/sdk.py | |||
| @@ -372,5 +372,24 @@ def populate_sdk(d, manifest_dir=None): | |||
| 372 | os.environ.clear() | 372 | os.environ.clear() |
| 373 | os.environ.update(env_bkp) | 373 | os.environ.update(env_bkp) |
| 374 | 374 | ||
| 375 | def get_extra_sdkinfo(sstate_dir): | ||
| 376 | """ | ||
| 377 | This function is going to be used for generating the target and host manifest files packages of eSDK. | ||
| 378 | """ | ||
| 379 | import math | ||
| 380 | |||
| 381 | extra_info = {} | ||
| 382 | extra_info['tasksizes'] = {} | ||
| 383 | extra_info['filesizes'] = {} | ||
| 384 | for root, _, files in os.walk(sstate_dir): | ||
| 385 | for fn in files: | ||
| 386 | if fn.endswith('.tgz'): | ||
| 387 | fsize = int(math.ceil(float(os.path.getsize(os.path.join(root, fn))) / 1024)) | ||
| 388 | task = fn.rsplit(':',1)[1].split('_',1)[1].split(',')[0] | ||
| 389 | origtotal = extra_info['tasksizes'].get(task, 0) | ||
| 390 | extra_info['tasksizes'][task] = origtotal + fsize | ||
| 391 | extra_info['filesizes'][fn] = fsize | ||
| 392 | return extra_info | ||
| 393 | |||
| 375 | if __name__ == "__main__": | 394 | if __name__ == "__main__": |
| 376 | pass | 395 | pass |
