Skip to content

Commit

Permalink
scripts: updated gen_handles.py to take Zephyr base as argument
Browse files Browse the repository at this point in the history
The script gen_handles.py was introduce in zephyrproject-rtos#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 <[email protected]>
  • Loading branch information
tejlmand committed Mar 15, 2021
1 parent 2857c2e commit 4502849
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -773,6 +773,7 @@ add_custom_command(
${ZEPHYR_BASE}/scripts/gen_handles.py
--output-source dev_handles.c
--kernel $<TARGET_FILE:${ZEPHYR_PREBUILT_EXECUTABLE}>
--zephyr-base ${ZEPHYR_BASE}
DEPENDS ${ZEPHYR_PREBUILT_EXECUTABLE}
)
set_property(GLOBAL APPEND PROPERTY GENERATED_KERNEL_SOURCE_FILES dev_handles.c)
Expand Down
17 changes: 14 additions & 3 deletions scripts/gen_handles.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand All @@ -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
Expand Down

0 comments on commit 4502849

Please sign in to comment.