From 6f873078d4c0a941954be2873d3bb37f63ff31a8 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 8 Feb 2021 15:16:10 +0100 Subject: [PATCH] build: use dictionnary for features instead of configuration_data This allows us to easily iterate on all features and only deal with bools. --- backend/session/meson.build | 8 ++++---- backend/x11/meson.build | 2 +- include/wlr/meson.build | 5 +++++ meson.build | 32 ++++++++++++-------------------- types/meson.build | 2 +- util/meson.build | 2 +- xwayland/meson.build | 4 ++-- 7 files changed, 26 insertions(+), 29 deletions(-) diff --git a/backend/session/meson.build b/backend/session/meson.build index 140d4105..29fcf6e4 100644 --- a/backend/session/meson.build +++ b/backend/session/meson.build @@ -33,7 +33,7 @@ if get_option('logind-provider') == 'auto' version: logind_version, ) if logind.found() - conf_data.set10('WLR_HAS_SYSTEMD', true) + features += { 'systemd': true } else logind = dependency('libelogind', required: get_option('logind'), @@ -41,7 +41,7 @@ if get_option('logind-provider') == 'auto' version: logind_version, ) if logind.found() - conf_data.set10('WLR_HAS_ELOGIND', true) + features += { 'elogind': true } endif endif logind_found = logind.found() @@ -53,7 +53,7 @@ else version: logind_version, ) if logind.found() - conf_data.set10('WLR_HAS_' + get_option('logind-provider').to_upper(), true) + features += { get_option('logind-provider'): true } logind_found = true endif endif @@ -69,5 +69,5 @@ libseat = dependency('libseat', required: get_option('libseat'), version: '>=0.2 if libseat.found() wlr_files += files('libseat.c') wlr_deps += libseat - conf_data.set10('WLR_HAS_LIBSEAT', true) + features += { 'libseat': true } endif diff --git a/backend/x11/meson.build b/backend/x11/meson.build index 206e9042..6d38af19 100644 --- a/backend/x11/meson.build +++ b/backend/x11/meson.build @@ -35,4 +35,4 @@ wlr_files += files( 'output.c', ) wlr_deps += x11_libs -conf_data.set10('WLR_HAS_X11_BACKEND', true) +features += { 'x11-backend': true } diff --git a/include/wlr/meson.build b/include/wlr/meson.build index 4e79d068..ae9c17a3 100644 --- a/include/wlr/meson.build +++ b/include/wlr/meson.build @@ -5,6 +5,11 @@ version_data.set('WLR_VERSION_MAJOR', version_array[0]) version_data.set('WLR_VERSION_MINOR', version_array[1]) version_data.set('WLR_VERSION_MICRO', version_array[2]) +conf_data = configuration_data() +foreach name, have : features + conf_data.set10('WLR_HAS_' + name.underscorify().to_upper(), have) +endforeach + conf_h = configure_file( input: 'config.h.in', output: 'config.h', diff --git a/meson.build b/meson.build index a5bf3c0d..f49d95bd 100644 --- a/meson.build +++ b/meson.build @@ -79,15 +79,16 @@ else ) endif -conf_data = configuration_data() -conf_data.set10('WLR_HAS_SYSTEMD', false) -conf_data.set10('WLR_HAS_ELOGIND', false) -conf_data.set10('WLR_HAS_LIBSEAT', false) -conf_data.set10('WLR_HAS_X11_BACKEND', false) -conf_data.set10('WLR_HAS_XWAYLAND', false) -conf_data.set10('WLR_HAS_XCB_ERRORS', false) -conf_data.set10('WLR_HAS_XCB_ICCCM', false) -conf_data.set10('WLR_HAS_XDG_FOREIGN', false) +features = { + 'systemd': false, + 'elogind': false, + 'libseat': false, + 'x11-backend': false, + 'xwayland': false, + 'xcb-errors': false, + 'xcb-icccm': false, + 'xdg-foreign': false, +} wayland_server = dependency('wayland-server', version: '>=1.19') wayland_client = dependency('wayland-client') @@ -107,7 +108,7 @@ if not get_option('xdg-foreign').disabled() uuid = dependency('uuid', required: false) uuid_create = cc.has_function('uuid_create') if uuid.found() or uuid_create - conf_data.set10('WLR_HAS_XDG_FOREIGN', true) + features += { 'xdg-foreign': true } elif get_option('xdg-foreign').enabled() error('Missing dependency uuid and uuid_create function not available ' + 'cannot build with xdg-foreign support') @@ -165,16 +166,7 @@ wlroots = declare_dependency( meson.override_dependency('wlroots', wlroots) -summary({ - 'systemd': conf_data.get('WLR_HAS_SYSTEMD', 0) == 1, - 'elogind': conf_data.get('WLR_HAS_ELOGIND', 0) == 1, - 'libseat': conf_data.get('WLR_HAS_LIBSEAT', 0) == 1, - 'xwayland': conf_data.get('WLR_HAS_XWAYLAND', 0) == 1, - 'x11-backend': conf_data.get('WLR_HAS_X11_BACKEND', 0) == 1, - 'xcb-icccm': conf_data.get('WLR_HAS_XCB_ICCCM', 0) == 1, - 'xcb-errors': conf_data.get('WLR_HAS_XCB_ERRORS', 0) == 1, - 'xdg-foreign': conf_data.get('WLR_HAS_XDG_FOREIGN', 0) == 1, -}, bool_yn: true) +summary(features, bool_yn: true) if get_option('examples') subdir('examples') diff --git a/types/meson.build b/types/meson.build index bf94ed53..811d2521 100644 --- a/types/meson.build +++ b/types/meson.build @@ -67,7 +67,7 @@ wlr_files += files( 'wlr_xdg_output_v1.c', ) -if conf_data.get('WLR_HAS_XDG_FOREIGN', 0) == 1 +if features.get('xdg-foreign') wlr_files += files( 'wlr_xdg_foreign_v1.c', 'wlr_xdg_foreign_v2.c', diff --git a/util/meson.build b/util/meson.build index 6b423980..8c988b23 100644 --- a/util/meson.build +++ b/util/meson.build @@ -9,7 +9,7 @@ wlr_files += files( ) -if conf_data.get('WLR_HAS_XDG_FOREIGN', 0) == 1 +if features.get('xdg-foreign') if uuid.found() wlr_deps += uuid add_project_arguments('-DHAS_LIBUUID=1', language: 'c') diff --git a/xwayland/meson.build b/xwayland/meson.build index 6cd77189..e7956759 100644 --- a/xwayland/meson.build +++ b/xwayland/meson.build @@ -45,7 +45,7 @@ foreach lib, desc : xwayland_optional ) if dep.found() xwayland_libs += dep - conf_data.set10('WLR_HAS_' + lib.underscorify().to_upper(), true) + features += { lib: true } endif endforeach @@ -60,4 +60,4 @@ wlr_files += files( 'xwm.c', ) wlr_deps += xwayland_libs -conf_data.set10('WLR_HAS_XWAYLAND', true) +features += { 'xwayland': true }