The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.0 KiB
58 lines
2.0 KiB
--- |
|
short-description: Keyval module |
|
authors: |
|
- name: Mark Schulte, Paolo Bonzini |
|
years: [2017, 2019] |
|
has-copyright: false |
|
... |
|
|
|
# keyval module |
|
|
|
This module parses files consisting of a series of `key=value` lines. |
|
One use of this module is to load 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 chosen |
|
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 |
|
keyval = import('keyval') |
|
``` |
|
|
|
The following functions will then be available as methods on the object |
|
with the name `keyval`. You can, of course, replace the name |
|
`keyval` with anything else. |
|
|
|
### keyval.load() |
|
|
|
This function loads a file consisting of a series of `key=value` lines |
|
and returns a dictionary object. |
|
|
|
`keyval.load()` makes no attempt at parsing the values in the file. In |
|
particular boolean and integer values will be represented as strings, |
|
and strings will keep any quoting that is present in the input file. |
|
It can be useful to create a |
|
[`configuration_data()`](#configuration_data) object from the |
|
dictionary and use methods such as `get_unquoted()`. |
|
|
|
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 [[@dict]] object.
|
|
|