Update #4265. --- wscript | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/wscript b/wscript index 6626fafb74..83c7c446bb 100755 --- a/wscript +++ b/wscript @@ -1359,6 +1359,30 @@ def get_compiler(conf, cp, variant): return value +def _generate_build_hash(conf): + import hashlib + import base64 + + build_hash = "" + for key in sorted(conf.env): + build_hash = build_hash + key + str(conf.env[key]) + for discard in [ + conf.env.PREFIX, + conf.bldnode.make_node(conf.env.VARIANT).abspath(), + conf.path.abspath(), + ]: + build_hash = build_hash.replace(discard, "") + state = hashlib.sha256() + state.update(build_hash.encode("utf-8")) + conf.define( + "RTEMS_BUILD_HASH", + base64.urlsafe_b64encode(state.digest()).decode("utf-8"), + ) + conf.write_config_header( + conf.env.VARIANT + "/cpukit/include/rtems/build-hash.h" + ) + + def configure_variant(conf, cp, bsp_map, path_list, top_group, variant): conf.msg("Configure board support package (BSP)", variant, color="YELLOW") @@ -1391,9 +1415,10 @@ def configure_variant(conf, cp, bsp_map, path_list, top_group, variant): conf.fatal("No such base BSP: '{}'".format(variant)) bsp_item.configure(conf, cic) - options = set([o[0].upper() for o in cp.items(variant)]) + options = set(o[0].upper() for o in cp.items(variant)) for o in options.difference(cic.options): conf.msg("Unknown configuration option", o.upper(), color="RED") + _generate_build_hash(conf) def check_forbidden_options(ctx, opts): -- 2.26.2 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel