kconfig: improvements for builddir config file

Document best practices for per-builddir config file, and add a test covering
loading a config file from the build directory.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
pull/5031/head
Paolo Bonzini 6 years ago
parent 647bd2839e
commit 49076d719c
  1. 8
      docs/markdown/Kconfig-module.md
  2. 2
      test cases/kconfig/4 load_config builddir/config
  3. 14
      test cases/kconfig/4 load_config builddir/meson.build

@ -38,6 +38,14 @@ This function loads a kconfig output file and returns a dictionary object.
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").

@ -0,0 +1,2 @@
CONFIG_IS_SET=y
# CONFIG_NOT_IS_SET is not set

@ -0,0 +1,14 @@
project('kconfig builddir test')
k = import('unstable-kconfig')
configure_file(input: 'config', output: 'out-config', copy: true)
conf = k.load(meson.build_root() / 'out-config')
if not conf.has_key('CONFIG_IS_SET')
error('Expected CONFIG_IS_SET to be set, but it wasn\'t')
endif
if conf.has_key('CONFIG_NOT_IS_SET')
error('Expected CONFIG_NOT_IS_SET not be set, but it was')
endif
Loading…
Cancel
Save