|
|
--- |
|
|
short-description: Unstable kconfig module |
|
|
authors: |
|
|
- name: Mark Schulte, Paolo Bonzini |
|
|
years: [2017, 2019] |
|
|
has-copyright: false |
|
|
... |
|
|
|
|
|
# Unstable kconfig module |
|
|
|
|
|
This module parses Kconfig output files to allow use of kconfig |
|
|
configurations in meson projects. |
|
|
|
|
|
**Note**: this does not provide kconfig frontend tooling to generate a |
|
|
configuration. You still need something such as kconfig frontends (see |
|
|
link below) to parse your Kconfig files, and then (after you've |
|
|
choosen the configuration options), output a ".config" file. |
|
|
|
|
|
[kconfig-frontends]: http://ymorin.is-a-geek.org/projects/kconfig-frontends |
|
|
|
|
|
## Usage |
|
|
|
|
|
The module may be imported as follows: |
|
|
|
|
|
``` meson |
|
|
kconfig = import('unstable-kconfig') |
|
|
``` |
|
|
|
|
|
The following functions will then be available as methods on the object |
|
|
with the name `kconfig`. You can, of course, replace the name |
|
|
`kconfig` with anything else. |
|
|
|
|
|
### kconfig.load() |
|
|
|
|
|
This function loads a kconfig output file and returns a dictionary object. |
|
|
|
|
|
`kconfig.load()` makes no attempt at parsing the values in the |
|
|
file. Therefore, true boolean values will be represented as the string "y" |
|
|
and integer values will have to be converted with `.to_int()`. |
|
|
|
|
|
Kconfig frontends usually have ".config" as the default name for the |
|
|
configuration file. However, placing the configuration file in the source |
|
|
directory limits the user to one configuration per source directory. |
|
|
In order to allow separate configurations for each build directory, as is |
|
|
the Meson standard, `meson.build` should not hardcode ".config" as the |
|
|
argument to `kconfig.load()`, and should instead make the argument to |
|
|
`kconfig.load()` a [project build option](Build-options.md). |
|
|
|
|
|
* The first (and only) argument is the path to the configuration file to |
|
|
load (usually ".config"). |
|
|
|
|
|
**Returns**: a [dictionary object](Reference-manual.md#dictionary-object).
|
|
|
|