zephyr/cmake
Torsten Rasmussen fffaf05e5d scripts: support for build meta file creation
This commit is motivated by the west discussion in:
https://github.com/zephyrproject-rtos/west/issues/548

The commit provides the ability to generate a build meta info file
containing lists of:
- Zephyr:         path and revision
- Zephyr modules: name, path, and revision
- West:           manifest path
                  path and revision for each project

For Zephyr or Zephyr modules the revision will be `null` if it is not
under git version control.

If Zephyr, a modules, or a project has uncommitted changes, the revision
will be marked dirty.

If west is not installed or used for the build process, the
west-projects list will be empty.

If a project is both a Zephyr module and a west project it will show up
in both lists.

Similar to Zephyr, which is independently referred as the Zephyr in use
but also listed as west project when west is used.
This is important in case ZEPHYR_BASE was manually set and pointing to
a different Zephyr repository.

The build meta file is not created per default but can be enabled with
the BUILD_OUTPUT_META Kconfig setting.

A project using west and having an extra Zephyr module loaded not
controlled using git can look like:
zephyr:
  path: /.../zephyr
  revision: 863600cd0e3c0a271e86629c5089821e5e4380cc-dirty
modules:
- name: mcuboot
  path: /.../bootloader/mcuboot
  revision: c61538748ead773ea75a551a7beee299228bdcaf
- name: local_module
  path: /.../local_module
  revision: null
west:
  manifest: /.../zephyr/west.yml
  projects:
  - path: /.../zephyr
    revision: 863600cd0e3c0a271e86629c5089821e5e4380cc-dirty
  - path: /.../bootloader/mcuboot
    revision: c61538748ead773ea75a551a7beee299228bdcaf
  - path: /.../tools/net-tools
    revision: f49bd1354616fae4093bf36e5eaee43c51a55127

And without west:
zephyr:
  path: /.../zephyr
  revision: 863600cd0e3c0a271e86629c5089821e5e4380cc-dirty
modules:
- name: hal_nordic
  path: /.../modules/hal/nordic
  revision: a6e5299041f152da5ae0ab17b2e44e088bb96d6d
west: null

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-11-11 06:06:07 -05:00
..
app scripts: support for build meta file creation 2021-11-11 06:06:07 -05:00
bintools cmake: gnu: Fix debugging when GDB fails to load because of Python 2021-09-23 12:47:39 +02:00
compiler cmake: CMake compile features support 2021-10-01 14:40:33 -04:00
emu cmake: boards: make QEMU icount sleep parameter configurable 2021-10-28 15:26:50 +02:00
flash scripts: runners: openocd: Enable thread awareness 2021-08-27 06:44:45 -04:00
ide
linker cmake: CMake linker script generator pass handling 2021-11-08 20:45:07 +01:00
linker_script cmake: CMake linker script generator pass handling 2021-11-08 20:45:07 +01:00
makefile_exports cmake: using zephyr_get_compile_options_for_lang_as_string for export 2020-12-15 08:37:54 -05:00
reports build: reports: publish all reports 2021-07-21 14:54:30 +03:00
toolchain toolchain: esp32: define target toolchain 2021-09-28 20:06:25 -04:00
usage boards/shields: re-work handling in cmake and west 2021-01-15 15:07:49 -05:00
util
boards.cmake cmake: increase minimal required version to 3.20.0 2021-08-20 09:47:34 +02:00
ccache.cmake
cfb.cmake
dts.cmake cmake: dts: import devicetree symbols into CMake 2021-08-25 20:28:26 -04:00
extensions.cmake cmake: CMake linker script generator pass handling 2021-11-08 20:45:07 +01:00
extra_flags.cmake
gcc-m-cpu.cmake cmake: add the gcc -mcpu parameter value for the Cortex-A9 CPU 2021-10-28 15:26:50 +02:00
generic_toolchain.cmake cmake: twister: Using common script for toolchain setting verification 2021-02-04 20:05:05 -05:00
git.cmake cmake: cleanup version printing during CMake configure time 2021-05-07 20:50:02 -04:00
hex.cmake
host-tools.cmake cmake: add IMGTOOL optional dependency 2020-09-01 13:33:46 +02:00
kconfig.cmake cmake: APPLICATION_CONFIG_DIR support implemented 2021-11-10 08:25:36 -05:00
kobj.cmake cmake: improved handling of output and byproducts in CMake 2021-02-14 18:09:24 -05:00
mcuboot.cmake kconfig: Add option for encryption of binaries 2021-08-26 21:15:54 -04:00
pristine.cmake cmake: pristine.cmake requires SOURCE_DIR and BINARY_DIR as arguments 2021-01-23 08:31:13 -05:00
python.cmake cmake: use WEST_PYTHON as a preferred python installation if defined. 2021-04-27 13:31:23 -04:00
shields.cmake boards/shields: re-work handling in cmake and west 2021-01-15 15:07:49 -05:00
target_toolchain_flags.cmake cmake: CMake compile features support 2021-10-01 14:40:33 -04:00
target_toolchain.cmake scripts: gen_handles.py: take device start symbol as argument. 2021-08-30 08:54:23 -04:00
verify-toolchain.cmake cmake: Set minimum required Zephyr SDK version to 0.13.1 2021-09-24 07:35:40 -04:00
version.cmake cmake: cleanup version printing during CMake configure time 2021-05-07 20:50:02 -04:00
west.cmake cmake: west: do not print error if west topdir fails 2021-03-17 11:28:14 +01:00
zephyr_module.cmake cmake: add a comment header to zephyr_settings.txt 2021-08-10 07:37:19 -04:00