zephyr/scripts/west_commands
Martí Bolívar d6f5f51f37 scripts: fix west zephyr-export error handling
Fix two issues:

1. The script assumes the default CMake generator build tool
   platform is installed. On Linux at least, that's Make instead
   of Ninja, but Make might not be installed since Zephyr recommends
   Ninja. On Windows, that might be VS Code or nmake.

   Calling `cmake -P pristine` instead of `cmake --build <path>
   --target pristine` has the benefit of removing the dependency on a
   build command, and hence the default generator is not relevant.

2. It also assumes run_cmake() returns control, and therefore pristine
   can be run.

   However, if the cmake command fails hard (say, due to issue #1
   before this patch), run_cmake() throws an exception instead.

   Fix that by trying to run the pristine target in a finally block
   instead, and adding some manual cleanup steps in case the build
   system is in a bad state and pristine fails too.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Signed-off-by: Torsten Rasmussen <torsten.rasmussen@nordicsemi.no>
2020-04-16 07:46:18 -04:00
..
completion cmake: West extension command for Zephyr config package registration 2020-03-27 16:23:46 +01:00
runners boards: nrf52_pca10040: Rename to nrf52dk_nrf52832 2020-04-06 13:09:07 +02:00
tests board: arc: Switch to generic OpenOCD runner 2020-02-13 10:45:44 +02:00
boards.py scripts: west-commands: Updates needed when removing ZEPHYR_BASE env 2020-03-27 16:23:46 +01:00
build_helpers.py scripts: west_commands: fix argument handling with runners.yaml 2020-02-20 09:06:09 +02:00
build.py scripts: west build: handle missing CMAKE_PROJECT_NAME 2020-04-11 15:04:04 -04:00
completion.py west: completion.py: Fix bad indentation and blank lines at end of file 2019-09-07 08:09:56 -04:00
debug.py scripts: west_commands: fix argument handling with runners.yaml 2020-02-20 09:06:09 +02:00
export.py scripts: fix west zephyr-export error handling 2020-04-16 07:46:18 -04:00
flash.py scripts: west_commands: fix argument handling with runners.yaml 2020-02-20 09:06:09 +02:00
README.txt west: require v0.6.0 or higher 2019-08-05 15:17:45 +02:00
run_common.py scripts: run_common: don't dump stack on unavailable runner 2020-03-25 19:43:30 +01:00
sign.py scripts: west-commands: Updates needed when removing ZEPHYR_BASE env 2020-03-27 16:23:46 +01:00
zcmake.py scripts: west_commands: verify minimum cmake version 2019-09-07 10:08:23 -04:00
zephyr_ext_common.py scripts: west-commands: Updates needed when removing ZEPHYR_BASE env 2020-03-27 16:23:46 +01:00

This directory contains implementations for west commands which are
tightly coupled to the zephyr tree. Currently, those are the build,
flash, and debug commands.

Before adding more here, consider whether you might want to put new
extensions in upstream west. For example, any commands which operate
on the multi-repo need to be in upstream west, not here. Try to limit
what goes in here to just those files that change along with Zephyr
itself.

When extending this code, please keep the unit tests (in tests/) up to
date. You can run the tests with this command from this directory:

$ PYTHONPATH=$PWD py.test

Windows users will need to find the path to .west/west/src in their
Zephyr installation, then run something like this:

> cmd /C "set PYTHONPATH=path\to\zephyr\scripts\west_commands && py.test"

Note that these tests are run as part of Zephyr's CI when submitting
an upstream pull request, and pull requests which break the tests
cannot be merged.

Thanks!