From 450284908c3f92926fe5f5ff8552a7813f857dc6 Mon Sep 17 00:00:00 2001 From: Torsten Rasmussen Date: Fri, 12 Mar 2021 15:28:54 +0100 Subject: [PATCH] scripts: updated gen_handles.py to take Zephyr base as argument The script gen_handles.py was introduce in #32127 but relies on ZEPHYR_BASE being set in environment. However, it is not a requirement to set Zephyr base in the users environment, therefore this is changed to an argument `-z` or `--zephyr-base` which will be passed from the build system to the script. If `-z` or `--zephyr-base` is not provided, the environment will be checked for a ZEPHYR_BASE setting there. Signed-off-by: Torsten Rasmussen --- CMakeLists.txt | 1 + scripts/gen_handles.py | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7adcd9156aae..2721294d48ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -773,6 +773,7 @@ add_custom_command( ${ZEPHYR_BASE}/scripts/gen_handles.py --output-source dev_handles.c --kernel $ + --zephyr-base ${ZEPHYR_BASE} DEPENDS ${ZEPHYR_PREBUILT_EXECUTABLE} ) set_property(GLOBAL APPEND PROPERTY GENERATED_KERNEL_SOURCE_FILES dev_handles.c) diff --git a/scripts/gen_handles.py b/scripts/gen_handles.py index ad3395c8e7f3..3e46c8d66ca5 100755 --- a/scripts/gen_handles.py +++ b/scripts/gen_handles.py @@ -41,9 +41,6 @@ if LooseVersion(elftools.__version__) < LooseVersion('0.24'): sys.exit("pyelftools is out of date, need version 0.24 or later") -ZEPHYR_BASE = os.getenv("ZEPHYR_BASE") -sys.path.insert(0, os.path.join(ZEPHYR_BASE, "scripts/dts")) - scr = os.path.basename(sys.argv[0]) def debug(text): @@ -65,10 +62,24 @@ def parse_args(): parser.add_argument("-v", "--verbose", action="store_true", help="Print extra debugging information") + + parser.add_argument("-z", "--zephyr-base", + help="Path to current Zephyr base. If this argument \ + is not provided the environment will be checked for \ + the ZEPHYR_BASE environment variable.") + args = parser.parse_args() if "VERBOSE" in os.environ: args.verbose = 1 + ZEPHYR_BASE = args.zephyr_base or os.getenv("ZEPHYR_BASE") + + if ZEPHYR_BASE is None: + sys.exit("-z / --zephyr-base not provided. Please provide " + "--zephyr-base or set ZEPHYR_BASE in environment") + + sys.path.insert(0, os.path.join(ZEPHYR_BASE, "scripts/dts")) + def symbol_data(elf, sym): addr = sym.entry.st_value