zephyr/modules
Torsten Rasmussen 3673e288bd modules: introducing MODULE_EXT_ROOT to allow glue code in Zephyr repo
This commit introduces MODULE_EXT_ROOT which allows CMake and Kconfig
glue code to be placed outside of the Zephyr module repository.

This allows for placing glue code in Zephyr, but also allows users to
specify custom MODULE_EXT_ROOTs for glue code using either
`-DMODULE_EXT_ROOT` or `zephyr/module.yml` with
`build:settings:module_ext_root` settings.

MODULE_EXT_ROOT' is a list of directories, similar to other roots such
as BOARD_ROOT, DTS_ROOT, etc.
The Zephyr repo folder ${ZEPHYR_BASE} is always to the MODULE_EXT_ROOT
list as lowest priority.
For each MODULE_EXT_ROOT, the file
`<module_ext_root>/modules/modules.cmake` will be processed.

In Zephyr repo, the folder `modules/<module>/` contains CMakeLists.txt
and Kconfig glue code for the Zephyr module.

A Zephyr module can specify that CMakeLists.txt and Kconfig glue code is
placed in an external module root by specifying:
```
build:
  cmake-ext: True
  kconfig-ext: True
```

It is still possible to place the CMakeLists.txt and Kconfig files
directly in the Zephyr module using the existing:
```
build:
  cmake: <path>
  kconfig: <file>
```.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-01-18 18:02:46 +01:00
..
Kconfig modules: introducing MODULE_EXT_ROOT to allow glue code in Zephyr repo 2021-01-18 18:02:46 +01:00
Kconfig.altera ext: hal: Remove Altera HAL from the tree and use a module 2020-03-20 09:07:16 -04:00
Kconfig.atmel
Kconfig.canopennode
Kconfig.civetweb
Kconfig.cmsis modules: cmsis: Add CMSIS-DSP configurations 2020-04-22 12:08:28 -05:00
Kconfig.cmsis_dsp modules: cmsis: Add CMSIS-DSP configurations 2020-04-22 12:08:28 -05:00
Kconfig.cypress
Kconfig.eos_s3 modules: add Kconfig for QuickLogic EOS S3 module 2020-09-04 14:48:49 -04:00
Kconfig.imx
Kconfig.infineon soc: arm: add infineon_xmc series support 2020-05-09 14:21:44 +02:00
Kconfig.libmetal
Kconfig.loramac-node lorawan: Add initial support for LoRaWAN 2020-10-08 12:15:38 +02:00
Kconfig.mbedtls modules: mbedtls: introduce MBEDTLS_MEMORY_DEBUG option 2020-11-17 10:02:17 -06:00
Kconfig.mcuboot_bootutil modules: introduce MCUBOOT_BOOTUTIL module 2021-01-14 18:03:38 +01:00
Kconfig.mcux modules: mcux: add support for NXP MCUX ACMP 2020-12-17 08:54:33 -06:00
Kconfig.microchip
Kconfig.nordic drivers: ieee802154: Reserve TIMER used by 802.15.4 driver 2020-12-15 11:22:56 +01:00
Kconfig.nuvoton soc: arm: add support for nuvoton numicro m48x series 2020-07-01 21:09:25 +02:00
Kconfig.open-amp ipc: openamp: Expose config options for MASTER/SLAVE builds 2020-03-27 15:20:25 -05:00
Kconfig.silabs
Kconfig.simplelink
Kconfig.sof modules: Add Sound Open Firmware module 2021-01-06 07:53:46 -06:00
Kconfig.st modules/hal_st: Align sensor drivers to stmemsc HAL i/f v1.03 2020-10-13 09:46:08 -05:00
Kconfig.stm32 modules: Delete switches USE_STM32_HAL_RCC and USE_STM32_HAL_RCC_EX 2020-10-28 09:28:15 -05:00
Kconfig.syst logging: add STP transport and raw data output support for syst 2020-11-17 10:09:19 -06:00
Kconfig.tfm arm: V2M Musca-S1: Add Musca-S1 SoC and board support 2020-12-20 13:03:49 -05:00
Kconfig.tinycbor
Kconfig.tinycrypt ext: crypto: Remove TinyCrypt from the tree and use a module 2020-03-20 17:29:48 +01:00
Kconfig.tls-generic net: lib: sockets: added ALPN extension option to TLS 2020-10-22 11:35:43 +03:00
Kconfig.vega
Kconfig.xtensa
modules.cmake modules: introducing MODULE_EXT_ROOT to allow glue code in Zephyr repo 2021-01-18 18:02:46 +01:00