From 035ddfb057e62ffdef2e21f4069e77677f666d96 Mon Sep 17 00:00:00 2001 From: Jimmy Brisson Date: Tue, 4 Apr 2017 11:35:37 -0500 Subject: [PATCH] Add an option to make.py to dump build metadata --- tools/make.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tools/make.py b/tools/make.py index 8822e34878..35de3b258f 100644 --- a/tools/make.py +++ b/tools/make.py @@ -23,6 +23,7 @@ import json from time import sleep from shutil import copy from os.path import join, abspath, dirname +from json import load, dump # Be sure that the tools directory is in the search path ROOT = abspath(join(dirname(__file__), "..")) @@ -54,6 +55,18 @@ from utils import argparse_dir_not_parent from tools.toolchains import mbedToolchain, TOOLCHAIN_CLASSES, TOOLCHAIN_PATHS from tools.settings import CLI_COLOR_MAP +def merge_metadata(filename, toolchain_report): + try: + metadata = load(open(filename)) + except (IOError, ValueError): + metadata = {'builds': []} + for tgt in toolchain_report.values(): + for tc in tgt.values(): + for project in tc.values(): + for build in project: + metadata['builds'].append(build[0]) + dump(metadata, open(filename, "wb"), indent=4, separators=(',', ': ')) + if __name__ == '__main__': # Parse Options parser = get_default_options_parser(add_app_config=True) @@ -177,6 +190,11 @@ if __name__ == '__main__': default=False, help="Link with mbed test library") + parser.add_argument("--metadata", + dest="metadata", + default=None, + help="Dump metadata to this file") + # Specify a different linker script parser.add_argument("-l", "--linker", dest="linker_script", type=argparse_filestring_type, @@ -249,6 +267,7 @@ if __name__ == '__main__': %(toolchain,search_path)) # Test + metadata_blob = {} if options.metadata else None for test_no in p: test = Test(test_no) if options.automated is not None: test.automated = options.automated @@ -287,6 +306,7 @@ if __name__ == '__main__': clean=options.clean, verbose=options.verbose, notify=notify, + report=metadata_blob, silent=options.silent, macros=options.macros, jobs=options.jobs, @@ -342,3 +362,5 @@ if __name__ == '__main__': print "[ERROR] %s" % str(e) sys.exit(1) + if options.metadata: + merge_metadata(options.metadata, metadata_blob)