Instead of creating an empty object and then setting keys one
at a time, it is possible to pass a dict object to
configuration_data(). This is nicer because it doesn't require
repeating the name of the cfg_data object over and over.
There is one exception: the 'conf' object, where we store values
that are used directly by C code. In that case, using a dict
object is not feasible for two reasons: first of all, replacing
the set_quoted() calls would result in awkward code with a lot
of calls to format(); moreover, since code that modifies it is
sprinkled all over the place, refactoring it would probably
make things more complicated rather than simpler.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
build-aux/meson.build | 18 ++++-----
docs/manpages/meson.build | 9 +++--
meson.build | 35 ++++++++++-------
po/meson.build | 7 ++--
src/meson.build | 65 ++++++++++++++++++-------------
src/remote/meson.build | 5 ++-
src/security/apparmor/meson.build | 11 +++---
tools/bash-completion/meson.build | 5 ++-
tools/meson.build | 21 +++++-----
9 files changed, 98 insertions(+), 78 deletions(-)
diff --git a/build-aux/meson.build b/build-aux/meson.build
index f4d0130e3b..bbfa27c4c6 100644
--- a/build-aux/meson.build
+++ b/build-aux/meson.build
@@ -1,14 +1,7 @@
-syntax_check_conf = configuration_data()
-syntax_check_conf.set('top_srcdir', meson.source_root())
-syntax_check_conf.set('top_builddir', meson.build_root())
-
flake8_path = ''
if flake8_prog.found()
flake8_path = flake8_prog.path()
endif
-syntax_check_conf.set('flake8_path', flake8_path)
-syntax_check_conf.set('runutf8', ' '.join(runutf8))
-syntax_check_conf.set('PYTHON3', python3_prog.path())
if host_machine.system() == 'freebsd' or host_machine.system() ==
'darwin'
make_prog = find_program('gmake')
@@ -33,8 +26,15 @@ else
grep_prog = find_program('grep')
endif
-syntax_check_conf.set('GREP', grep_prog.path())
-syntax_check_conf.set('SED', sed_prog.path())
+syntax_check_conf = configuration_data({
+ 'top_srcdir': meson.source_root(),
+ 'top_builddir': meson.build_root(),
+ 'flake8_path': flake8_path,
+ 'runutf8': ' '.join(runutf8),
+ 'PYTHON3': python3_prog.path(),
+ 'GREP': grep_prog.path(),
+ 'SED': sed_prog.path(),
+})
configure_file(
input: 'Makefile.in',
diff --git a/docs/manpages/meson.build b/docs/manpages/meson.build
index bad9b62a2e..d9fcb6b057 100644
--- a/docs/manpages/meson.build
+++ b/docs/manpages/meson.build
@@ -84,10 +84,11 @@ foreach name : keyname_list
}
endforeach
-docs_man_conf = configuration_data()
-docs_man_conf.set('SYSCONFDIR', sysconfdir)
-docs_man_conf.set('RUNSTATEDIR', runstatedir)
-docs_man_conf.set('VERSION', meson.project_version())
+docs_man_conf = configuration_data({
+ 'SYSCONFDIR': sysconfdir,
+ 'RUNSTATEDIR': runstatedir,
+ 'VERSION': meson.project_version(),
+})
foreach data : docs_man_files
rst_in_file = '@0@.rst'.format(data['name'])
diff --git a/meson.build b/meson.build
index 27c21d1d67..50b996cbd4 100644
--- a/meson.build
+++ b/meson.build
@@ -2135,14 +2135,15 @@ pkgconfig_files = [
'libvirt-admin.pc.in',
]
-pkgconfig_conf = configuration_data()
-pkgconfig_conf.set('VERSION', meson.project_version())
-pkgconfig_conf.set('datadir', datadir)
-pkgconfig_conf.set('datarootdir', datadir)
-pkgconfig_conf.set('exec_prefix', prefix)
-pkgconfig_conf.set('includedir', includedir)
-pkgconfig_conf.set('libdir', libdir)
-pkgconfig_conf.set('prefix', prefix)
+pkgconfig_conf = configuration_data({
+ 'VERSION': meson.project_version(),
+ 'datadir': datadir,
+ 'datarootdir': datadir,
+ 'exec_prefix': prefix,
+ 'includedir': includedir,
+ 'libdir': libdir,
+ 'prefix': prefix,
+})
pkgconfig_dir = libdir / 'pkgconfig'
@@ -2165,8 +2166,9 @@ if git
'mingw-libvirt.spec.in',
]
- spec_conf = configuration_data()
- spec_conf.set('VERSION', meson.project_version())
+ spec_conf = configuration_data({
+ 'VERSION': meson.project_version(),
+ })
foreach file : spec_files
configure_file(
@@ -2180,8 +2182,9 @@ if git
env: runutf8, check: true)
authors_file = 'AUTHORS.rst.in'
- authors_conf = configuration_data()
- authors_conf.set('contributorslist', authors.stdout())
+ authors_conf = configuration_data({
+ 'contributorslist': authors.stdout(),
+ })
configure_file(
input: authors_file,
@@ -2209,9 +2212,11 @@ configure_file(output: 'meson-config.h', configuration:
conf)
# generate run helper
-run_conf = configuration_data()
-run_conf.set('abs_builddir', meson.build_root())
-run_conf.set('abs_top_builddir', meson.build_root())
+run_conf = configuration_data({
+ 'abs_builddir': meson.build_root(),
+ 'abs_top_builddir': meson.build_root(),
+})
+
configure_file(
input: 'run.in',
output: '@BASENAME@',
diff --git a/po/meson.build b/po/meson.build
index 69d8be726a..f4d95f97fe 100644
--- a/po/meson.build
+++ b/po/meson.build
@@ -1,8 +1,9 @@
i18n = import('i18n')
-potfiles_conf = configuration_data()
-potfiles_conf.set('SRCDIR', '')
-potfiles_conf.set('BUILDDIR', '')
+potfiles_conf = configuration_data({
+ 'SRCDIR': '',
+ 'BUILDDIR': '',
+})
potfiles = configure_file(
input: 'POTFILES.in',
diff --git a/src/meson.build b/src/meson.build
index b2d951d36c..10165ba5ac 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -698,20 +698,23 @@ endforeach
foreach data : virt_daemon_confs
capitalize_args = [ '-c',
'print("@0(a)".capitalize())'.format(data['name']) ]
name_uc = run_command(python3_prog, capitalize_args, check: true, env:
runutf8).stdout().strip()
- daemon_conf = configuration_data()
- daemon_conf.set('runstatedir', runstatedir)
- daemon_conf.set('sbindir', sbindir)
- daemon_conf.set('sysconfdir', sysconfdir)
- daemon_conf.set('DAEMON_NAME', data['name'])
- daemon_conf.set('DAEMON_NAME_UC', name_uc)
- # to silence meson warning about missing 'CONFIG' in the configuration_data
- daemon_conf.set('CONFIG', '@CONFIG@')
+
if conf.has('WITH_POLKIT')
- daemon_conf.set('default_auth', 'polkit')
+ default_auth = 'polkit'
else
- daemon_conf.set('default_auth', 'none')
+ default_auth = 'none'
endif
+ daemon_conf = configuration_data({
+ 'runstatedir': runstatedir,
+ 'sbindir': sbindir,
+ 'sysconfdir': sysconfdir,
+ 'DAEMON_NAME': data['name'],
+ 'DAEMON_NAME_UC': name_uc,
+ 'default_auth': default_auth,
+ # to silence meson warning about missing 'CONFIG' in the configuration_data
+ 'CONFIG': '@CONFIG@',
+ })
if data.get('with_ip', false)
conf_in = libvirtd_conf_tmp
@@ -783,20 +786,23 @@ if conf.has('WITH_LIBVIRTD')
)
foreach unit : virt_daemon_units
- unit_conf = configuration_data()
- unit_conf.set('runstatedir', runstatedir)
- unit_conf.set('sbindir', sbindir)
- unit_conf.set('sysconfdir', sysconfdir)
- unit_conf.set('name', unit['name'])
- unit_conf.set('service', unit['service'])
- unit_conf.set('sockprefix', unit['sockprefix'])
- unit_conf.set('deps', unit.get('deps', ''))
if conf.has('WITH_POLKIT')
- unit_conf.set('mode', '0666')
+ mode = '0666'
else
- unit_conf.set('mode', '0600')
+ mode = '0600'
endif
+ unit_conf = configuration_data({
+ 'runstatedir': runstatedir,
+ 'sbindir': sbindir,
+ 'sysconfdir': sysconfdir,
+ 'name': unit['name'],
+ 'service': unit['service'],
+ 'sockprefix': unit['sockprefix'],
+ 'deps': unit.get('deps', ''),
+ 'mode': mode,
+ })
+
configure_file(
input: unit['service_in'],
output: '@0@.service'.format(unit['service']),
@@ -829,15 +835,17 @@ if conf.has('WITH_LIBVIRTD')
# Generate openrc init files
if init_script == 'openrc'
foreach init : openrc_init_files
- init_conf = configuration_data()
- init_conf.set('sbindir', sbindir)
- init_conf.set('runstatedir', runstatedir)
if conf.has('WITH_FIREWALLD')
need_firewalld = 'need firewalld'
else
need_firewalld = ''
endif
- init_conf.set('NEED_FIREWALLD', need_firewalld)
+
+ init_conf = configuration_data({
+ 'sbindir': sbindir,
+ 'runstatedir': runstatedir,
+ 'NEED_FIREWALLD': need_firewalld,
+ })
init_file = configure_file(
input: init['in_file'],
@@ -1010,10 +1018,11 @@ run_pkg_config_files = [
'libvirt.pc.in',
]
-run_pkg_config_conf = configuration_data()
-run_pkg_config_conf.set('VERSION', meson.project_version())
-run_pkg_config_conf.set('abs_top_builddir', meson.build_root())
-run_pkg_config_conf.set('abs_top_srcdir', meson.source_root())
+run_pkg_config_conf = configuration_data({
+ 'VERSION': meson.project_version(),
+ 'abs_top_builddir': meson.build_root(),
+ 'abs_top_srcdir': meson.source_root(),
+})
foreach file : run_pkg_config_files
configure_file(
diff --git a/src/remote/meson.build b/src/remote/meson.build
index b2aafe6320..eb4f7a0068 100644
--- a/src/remote/meson.build
+++ b/src/remote/meson.build
@@ -240,8 +240,9 @@ if conf.has('WITH_REMOTE')
runstatedir / 'libvirt' / 'common',
]
- logrotate_conf = configuration_data()
- logrotate_conf.set('localstatedir', localstatedir)
+ logrotate_conf = configuration_data({
+ 'localstatedir': localstatedir,
+ })
foreach name : logrotate_files
log_file = configure_file(
diff --git a/src/security/apparmor/meson.build b/src/security/apparmor/meson.build
index 990f00b4f3..58b4024b85 100644
--- a/src/security/apparmor/meson.build
+++ b/src/security/apparmor/meson.build
@@ -5,11 +5,12 @@ apparmor_gen_profiles = [
'usr.sbin.virtxend',
]
-apparmor_gen_profiles_conf = configuration_data()
-apparmor_gen_profiles_conf.set('sysconfdir', sysconfdir)
-apparmor_gen_profiles_conf.set('sbindir', sbindir)
-apparmor_gen_profiles_conf.set('runstatedir', runstatedir)
-apparmor_gen_profiles_conf.set('libexecdir', libexecdir)
+apparmor_gen_profiles_conf = configuration_data({
+ 'sysconfdir': sysconfdir,
+ 'sbindir': sbindir,
+ 'runstatedir': runstatedir,
+ 'libexecdir': libexecdir,
+})
apparmor_dir = sysconfdir / 'apparmor.d'
diff --git a/tools/bash-completion/meson.build b/tools/bash-completion/meson.build
index deda7c4f46..2ce1c47602 100644
--- a/tools/bash-completion/meson.build
+++ b/tools/bash-completion/meson.build
@@ -4,8 +4,9 @@ completion_commands = [
]
foreach command : completion_commands
- completion_conf = configuration_data()
- completion_conf.set('command', command)
+ completion_conf = configuration_data({
+ 'command': command,
+ })
completion = configure_file(
input: 'vsh.in',
output: command,
diff --git a/tools/meson.build b/tools/meson.build
index ac714e6425..bb28a904dc 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -231,16 +231,17 @@ if conf.has('WITH_REMOTE')
)
endif
-tools_conf = configuration_data()
-tools_conf.set('PACKAGE', meson.project_name())
-tools_conf.set('VERSION', meson.project_version())
-tools_conf.set('bindir', bindir)
-tools_conf.set('libexecdir', libexecdir)
-tools_conf.set('localedir', localedir)
-tools_conf.set('localstatedir', localstatedir)
-tools_conf.set('sbindir', sbindir)
-tools_conf.set('schemadir', pkgdatadir / 'schemas')
-tools_conf.set('sysconfdir', sysconfdir)
+tools_conf = configuration_data({
+ 'PACKAGE': meson.project_name(),
+ 'VERSION': meson.project_version(),
+ 'bindir': bindir,
+ 'libexecdir': libexecdir,
+ 'localedir': localedir,
+ 'localstatedir': localstatedir,
+ 'sbindir': sbindir,
+ 'schemadir': pkgdatadir / 'schemas',
+ 'sysconfdir': sysconfdir,
+})
configure_file(
input: 'virt-xml-validate.in',
--
2.35.1