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 |