scripts: logging/dictionary: can specify output format
This changes the script to allow output format to be specified. Currently, only JSON is support. This will allow supporting other formats in the future. Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
parent
caca548cf9
commit
1c9e89cd5e
|
@ -1697,7 +1697,7 @@ list(APPEND
|
||||||
)
|
)
|
||||||
|
|
||||||
if(CONFIG_LOG_DICTIONARY_SUPPORT)
|
if(CONFIG_LOG_DICTIONARY_SUPPORT)
|
||||||
set(LOG_DICT_DB_NAME ${PROJECT_BINARY_DIR}/log_dictionary.json)
|
set(log_dict_db_output --json=${PROJECT_BINARY_DIR}/log_dictionary.json)
|
||||||
|
|
||||||
list(APPEND
|
list(APPEND
|
||||||
post_build_commands
|
post_build_commands
|
||||||
|
@ -1705,13 +1705,15 @@ if(CONFIG_LOG_DICTIONARY_SUPPORT)
|
||||||
${PYTHON_EXECUTABLE}
|
${PYTHON_EXECUTABLE}
|
||||||
${ZEPHYR_BASE}/scripts/logging/dictionary/database_gen.py
|
${ZEPHYR_BASE}/scripts/logging/dictionary/database_gen.py
|
||||||
${KERNEL_ELF_NAME}
|
${KERNEL_ELF_NAME}
|
||||||
${LOG_DICT_DB_NAME}
|
${log_dict_db_output}
|
||||||
--build-header ${PROJECT_BINARY_DIR}/include/generated/version.h
|
--build-header ${PROJECT_BINARY_DIR}/include/generated/version.h
|
||||||
)
|
)
|
||||||
list(APPEND
|
list(APPEND
|
||||||
post_build_byproducts
|
post_build_byproducts
|
||||||
${LOG_DICT_DB_NAME}
|
${LOG_DICT_DB_NAME}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
unset(log_dict_db_output)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Add post_build_commands to post-process the final .elf file produced by
|
# Add post_build_commands to post-process the final .elf file produced by
|
||||||
|
|
|
@ -76,7 +76,6 @@ def parse_args():
|
||||||
argparser = argparse.ArgumentParser()
|
argparser = argparse.ArgumentParser()
|
||||||
|
|
||||||
argparser.add_argument("elffile", help="Zephyr ELF binary")
|
argparser.add_argument("elffile", help="Zephyr ELF binary")
|
||||||
argparser.add_argument("dbfile", help="Dictionary Logging Database file")
|
|
||||||
argparser.add_argument("--build", help="Build ID")
|
argparser.add_argument("--build", help="Build ID")
|
||||||
argparser.add_argument("--build-header",
|
argparser.add_argument("--build-header",
|
||||||
help="Header file containing BUILD_VERSION define")
|
help="Header file containing BUILD_VERSION define")
|
||||||
|
@ -85,6 +84,10 @@ def parse_args():
|
||||||
argparser.add_argument("-v", "--verbose", action="store_true",
|
argparser.add_argument("-v", "--verbose", action="store_true",
|
||||||
help="Print more information")
|
help="Print more information")
|
||||||
|
|
||||||
|
outfile_grp = argparser.add_mutually_exclusive_group(required=True)
|
||||||
|
outfile_grp.add_argument("--json",
|
||||||
|
help="Output Dictionary Logging Database file in JSON")
|
||||||
|
|
||||||
return argparser.parse_args()
|
return argparser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
@ -521,7 +524,12 @@ def main():
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
logger.info("ELF file %s", args.elffile)
|
logger.info("ELF file %s", args.elffile)
|
||||||
logger.info("Database file %s", args.dbfile)
|
|
||||||
|
if args.json:
|
||||||
|
logger.info("JSON Database file %s", args.json)
|
||||||
|
else:
|
||||||
|
logger.error("Need to specify output file.")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
elf = ELFFile(elffile)
|
elf = ELFFile(elffile)
|
||||||
|
|
||||||
|
@ -560,9 +568,11 @@ def main():
|
||||||
extract_logging_subsys_information(elf, database)
|
extract_logging_subsys_information(elf, database)
|
||||||
|
|
||||||
# Write database file
|
# Write database file
|
||||||
if not LogDatabase.write_json_database(args.dbfile, database):
|
if args.json:
|
||||||
logger.error("ERROR: Cannot open database file for write: %s, exiting...", args.dbfile)
|
if not LogDatabase.write_json_database(args.json, database):
|
||||||
sys.exit(1)
|
logger.error("ERROR: Cannot open database file for write: %s, exiting...",
|
||||||
|
args.json)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
elffile.close()
|
elffile.close()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue