scripts: fix west sign when ZEPHYR_BASE is unset
Due to cleanups in west targeted at getting rid of zephyr-specific code, extension commands can no longer rely on ZEPHYR_BASE being set in the calling environment at import time (it's still set at run() time for now, though, to keep west build working). Add a new helper to make dealing with this easier from west sign. Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
This commit is contained in:
parent
eb95bed552
commit
6dab163cad
2 changed files with 16 additions and 5 deletions
|
@ -17,11 +17,11 @@ from build_helpers import find_build_dir, is_zephyr_build, \
|
||||||
FIND_BUILD_DIR_DESCRIPTION
|
FIND_BUILD_DIR_DESCRIPTION
|
||||||
from runners.core import BuildConfiguration
|
from runners.core import BuildConfiguration
|
||||||
from zcmake import CMakeCache
|
from zcmake import CMakeCache
|
||||||
from zephyr_ext_common import Forceable, cached_runner_config
|
from zephyr_ext_common import Forceable, cached_runner_config, \
|
||||||
|
zephyr_scripts_path
|
||||||
|
|
||||||
|
sys.path.append(os.path.join(zephyr_scripts_path(), 'dts'))
|
||||||
|
|
||||||
# FIXME we should think of a nicer way to manage sys.path
|
|
||||||
# for shared Zephyr code.
|
|
||||||
sys.path.append(os.path.join(os.environ['ZEPHYR_BASE'], 'scripts', 'dts'))
|
|
||||||
import edtlib
|
import edtlib
|
||||||
|
|
||||||
SIGN_DESCRIPTION = '''\
|
SIGN_DESCRIPTION = '''\
|
||||||
|
@ -388,6 +388,5 @@ class RimageSigner(Signer):
|
||||||
['-o', out_bin, '-m', 'apl', '-i', '3'] +
|
['-o', out_bin, '-m', 'apl', '-i', '3'] +
|
||||||
[bootloader, kernel])
|
[bootloader, kernel])
|
||||||
|
|
||||||
|
|
||||||
log.inf(quote_sh_list(sign_base))
|
log.inf(quote_sh_list(sign_base))
|
||||||
subprocess.check_call(sign_base)
|
subprocess.check_call(sign_base)
|
||||||
|
|
|
@ -8,6 +8,9 @@ Note that common helpers used by the flash and debug extension
|
||||||
commands are in run_common -- that's for common code used by
|
commands are in run_common -- that's for common code used by
|
||||||
commands which specifically execute runners.'''
|
commands which specifically execute runners.'''
|
||||||
|
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
from west import log
|
from west import log
|
||||||
from west.commands import WestCommand
|
from west.commands import WestCommand
|
||||||
|
|
||||||
|
@ -52,3 +55,12 @@ def cached_runner_config(build_dir, cache):
|
||||||
elf_file, hex_file, bin_file,
|
elf_file, hex_file, bin_file,
|
||||||
gdb=gdb, openocd=openocd,
|
gdb=gdb, openocd=openocd,
|
||||||
openocd_search=openocd_search)
|
openocd_search=openocd_search)
|
||||||
|
|
||||||
|
# FIXME we should think of a nicer way to manage sys.path
|
||||||
|
# for shared Zephyr code.
|
||||||
|
def zephyr_scripts_path():
|
||||||
|
# This relies on this file being zephyr/scripts/foo/bar.py.
|
||||||
|
zephyr_base = Path(os.environ.get('ZEPHYR_BASE',
|
||||||
|
Path(__file__).parent.parent.parent))
|
||||||
|
|
||||||
|
return str(zephyr_base / 'scripts')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue