zephyr/scripts/west_commands
Torsten Rasmussen 3dd65a7663 runners: remove dependencies from runners
Today, there is a build target is added for each runner: flash, debug,
debugserver, attach.

And those runners will have a dependency to Zephyr logical target that
is built before invoking `west <runner>`.

This design has some flaws, mainly that additional dependencies directly
on the target will not be built when running `west <runner>` directly.
That generator expressions cannot be used for the DEPENDS argument.

Instead, the build target `<runner>` will not have any dependencies, and
will raise a build error if a dependency is added to the target.
Due to how `add_dependencies()` work, this must be done as a build time
check, and not configure time check.

`west <runner>` will invoke a build before executing the runner, and
this way ensure the build target is up-to-date, which again removes the
need for a dedicated `west_<runner>_target`.

It also minimizes the risk of developer errors, as developers no longer
need to consider the need for adding additional dependencies.
If a custom target is part of the default `all` build, then it's ensured
to be up-to-date.

Fixes: Issue reported on slack.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-04-19 15:35:30 +02:00
..
completion boards/shields: re-work handling in cmake and west 2021-01-15 15:07:49 -05:00
runners runners: nrfjprog: Fix nrfjprog after changes to BuildConfiguration 2021-04-09 16:34:01 +02:00
tests runners: nrfjprog: workaround for multi-core hex files 2021-03-19 09:52:13 -04:00
boards.py boards/shields: re-work handling in cmake and west 2021-01-15 15:07:49 -05:00
build.py west build: fix board detection 2021-02-02 14:08:57 -05:00
build_helpers.py west build: fix --pristine on early build system failure 2020-10-14 07:22:32 -05:00
completion.py boards/shields: re-work handling in cmake and west 2021-01-15 15:07:49 -05:00
debug.py scripts: clean up west build/flash/debug help 2020-06-29 08:47:04 -04:00
export.py cmake: Zephyr CMake package clean-up and minor fix 2020-08-19 12:52:33 -04:00
flash.py scripts: clean up west build/flash/debug help 2020-06-29 08:47:04 -04:00
mypy.ini scripts: runners: add type checking for west_commands 2020-09-03 16:49:09 -05:00
README.txt scripts: runners: add type checking for west_commands 2020-09-03 16:49:09 -05:00
run_common.py runners: remove dependencies from runners 2021-04-19 15:35:30 +02:00
run_tests.py scripts: runners: add type checking for west_commands 2020-09-03 16:49:09 -05:00
sign.py scripts/west sign: Use BuildConfiguration instead of load_dot_config 2021-04-08 16:38:28 +02:00
zcmake.py scripts: zcmake: fix for prerelease cmake versions 2021-02-09 09:14:37 -05:00
zephyr_ext_common.py scripts: west_commands: Remove no longer needed load_dot_config(path) 2021-04-08 16:38:28 +02:00

This directory contains implementations for west commands which are
tightly coupled to the zephyr tree. This includes 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 Zephyr-specific features.

When extending this code, please keep the unit tests (in tests/) up to
date. The mypy static type checker is also run on the runners package.

To run these tests locally on Windows, run:

   py -3 run_tests.py

On macOS and Linux:

   ./run_tests.py

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!