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>
59 lines
1.9 KiB
Plaintext
59 lines
1.9 KiB
Plaintext
# Copyright (c) 2019 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
comment "Available modules."
|
|
|
|
source "$(KCONFIG_BINARY_DIR)/Kconfig.modules"
|
|
|
|
comment "Optional modules. Make sure they're installed, via the project manifest."
|
|
|
|
source "modules/Kconfig.altera"
|
|
source "modules/Kconfig.atmel"
|
|
source "modules/Kconfig.canopennode"
|
|
source "modules/Kconfig.civetweb"
|
|
source "modules/Kconfig.cmsis"
|
|
source "modules/Kconfig.cypress"
|
|
source "modules/Kconfig.eos_s3"
|
|
source "modules/Kconfig.imx"
|
|
source "modules/Kconfig.infineon"
|
|
source "modules/Kconfig.libmetal"
|
|
source "modules/Kconfig.loramac-node"
|
|
source "modules/Kconfig.mbedtls"
|
|
source "modules/Kconfig.mcux"
|
|
source "modules/Kconfig.microchip"
|
|
source "modules/Kconfig.nordic"
|
|
source "modules/Kconfig.nuvoton"
|
|
source "modules/Kconfig.open-amp"
|
|
source "modules/Kconfig.silabs"
|
|
source "modules/Kconfig.simplelink"
|
|
source "modules/Kconfig.sof"
|
|
source "modules/Kconfig.st"
|
|
source "modules/Kconfig.stm32"
|
|
source "modules/Kconfig.syst"
|
|
source "modules/Kconfig.tfm"
|
|
source "modules/Kconfig.tinycbor"
|
|
source "modules/Kconfig.tinycrypt"
|
|
source "modules/Kconfig.vega"
|
|
source "modules/Kconfig.xtensa"
|
|
source "modules/Kconfig.mcuboot_bootutil"
|
|
|
|
comment "Unavailable modules, please install those via the project manifest."
|
|
|
|
# List of comments to display when Zephyr modules are not available, please
|
|
# use the following syntax:
|
|
# ---------------------------------------------------
|
|
# comment "<module_name> module not available."
|
|
# depends on !ZEPHYR_<MODULE_NAME_UPPER>_MODULE
|
|
#
|
|
# Remember to add the following code inside the `<module>/Kconfig file:
|
|
# ---------------------------------------------------
|
|
# config ZEPHYR_<MODULE_NAME_UPPER>_MODULE
|
|
# bool
|
|
|
|
# This ensures that symbols are available in Kconfig for dependency checking
|
|
# and referencing, while keeping the settings themselves unavailable when the
|
|
# modules are not present in the workspace
|
|
if 0
|
|
osource "modules/*/Kconfig"
|
|
endif
|