mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

As stated in our top level license files, the license is MIT unless otherwise stated. Add SPDX identifers accordingly. Replace older license statementa with the standardised syntax. Also drop "All Rights Reserved" expression as it isn't used now, doesn't mean anything and is confusing. (From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
#
|
|
# Copyright OpenEmbedded Contributors
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
# Summarize sstate usage at the end of the build
|
|
python buildstats_summary () {
|
|
import collections
|
|
import os.path
|
|
|
|
bsdir = e.data.expand("${BUILDSTATS_BASE}/${BUILDNAME}")
|
|
if not os.path.exists(bsdir):
|
|
return
|
|
|
|
sstatetasks = (e.data.getVar('SSTATETASKS') or '').split()
|
|
built = collections.defaultdict(lambda: [set(), set()])
|
|
for pf in os.listdir(bsdir):
|
|
taskdir = os.path.join(bsdir, pf)
|
|
if not os.path.isdir(taskdir):
|
|
continue
|
|
|
|
tasks = os.listdir(taskdir)
|
|
for t in sstatetasks:
|
|
no_sstate, sstate = built[t]
|
|
if t in tasks:
|
|
no_sstate.add(pf)
|
|
elif t + '_setscene' in tasks:
|
|
sstate.add(pf)
|
|
|
|
header_printed = False
|
|
for t in sstatetasks:
|
|
no_sstate, sstate = built[t]
|
|
if no_sstate | sstate:
|
|
if not header_printed:
|
|
header_printed = True
|
|
bb.note("Build completion summary:")
|
|
|
|
sstate_count = len(sstate)
|
|
no_sstate_count = len(no_sstate)
|
|
total_count = sstate_count + no_sstate_count
|
|
bb.note(" {0}: {1:.1f}% sstate reuse({2} setscene, {3} scratch)".format(
|
|
t, round(100 * sstate_count / total_count, 1), sstate_count, no_sstate_count))
|
|
}
|
|
addhandler buildstats_summary
|
|
buildstats_summary[eventmask] = "bb.event.BuildCompleted"
|