diff options
author | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
---|---|---|
committer | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/docs/markdown/Keyval-module.md | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/docs/markdown/Keyval-module.md')
-rw-r--r-- | meson/docs/markdown/Keyval-module.md | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/meson/docs/markdown/Keyval-module.md b/meson/docs/markdown/Keyval-module.md new file mode 100644 index 000000000..96d9c1566 --- /dev/null +++ b/meson/docs/markdown/Keyval-module.md @@ -0,0 +1,58 @@ +--- +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 [dictionary object](Reference-manual.md#dictionary-object). |