diff options
author | Simon Ser <contact@emersion.fr> | 2022-11-25 17:36:24 +0100 |
---|---|---|
committer | Alexander Orzechowski <alex@ozal.ski> | 2022-12-06 22:39:45 +0000 |
commit | 6c897756b6340d098f50eeb0da0d39abda87fdda (patch) | |
tree | 9e0f224e37eb9390020c62e65300aa5610939958 | |
parent | afe1ae4479a680cebfc5b12d9b5dbafefbd73395 (diff) |
build: use a configuration file for internal features
This avoids re-building the whole project when switching one
Meson option. This shrinks down the compiler invocation command
line, making it more readable and making it easier to inspect
which flags are passed in (the generated file can be opened).
Additionally this is more consistent with our external feature
handling, which uses <wlr/config.h> already.
-rw-r--r-- | include/backend/x11.h | 10 | ||||
-rw-r--r-- | include/meson.build | 8 | ||||
-rw-r--r-- | include/xwayland/xwm.h | 4 | ||||
-rw-r--r-- | meson.build | 8 |
4 files changed, 18 insertions, 12 deletions
diff --git a/include/backend/x11.h b/include/backend/x11.h index 9c0c1a4d..704d48f1 100644 --- a/include/backend/x11.h +++ b/include/backend/x11.h @@ -9,10 +9,6 @@ #include <xcb/xcb.h> #include <xcb/present.h> -#if HAS_XCB_ERRORS -#include <xcb/xcb_errors.h> -#endif - #include <pixman.h> #include <wlr/backend/x11.h> #include <wlr/interfaces/wlr_keyboard.h> @@ -21,6 +17,12 @@ #include <wlr/types/wlr_pointer.h> #include <wlr/render/drm_format_set.h> +#include "config.h" + +#if HAS_XCB_ERRORS +#include <xcb/xcb_errors.h> +#endif + #define XCB_EVENT_RESPONSE_TYPE_MASK 0x7f struct wlr_x11_backend; diff --git a/include/meson.build b/include/meson.build index 358aada8..bc91a766 100644 --- a/include/meson.build +++ b/include/meson.build @@ -30,3 +30,11 @@ install_subdir('wlr', install_dir: get_option('includedir'), exclude_files: exclude_files, ) + +foreach name, have : internal_features + internal_config.set10('HAS_' + name.underscorify().to_upper(), have) +endforeach +wlr_files += configure_file( + output: 'config.h', + configuration: internal_config, +) diff --git a/include/xwayland/xwm.h b/include/xwayland/xwm.h index 391e09ab..7ed97b15 100644 --- a/include/xwayland/xwm.h +++ b/include/xwayland/xwm.h @@ -5,10 +5,12 @@ #include <wlr/config.h> #include <wlr/xwayland.h> #include <xcb/render.h> +#include "config.h" +#include "xwayland/selection.h" + #if HAS_XCB_ERRORS #include <xcb/xcb_errors.h> #endif -#include "xwayland/selection.h" /* This is in xcb/xcb_event.h, but pulling xcb-util just for a constant * others redefine anyway is meh diff --git a/meson.build b/meson.build index fc3f88af..0a584621 100644 --- a/meson.build +++ b/meson.build @@ -99,6 +99,7 @@ internal_features = { 'xcb-errors': false, 'egl': false, } +internal_config = configuration_data() wayland_project_options = ['tests=false', 'documentation=false'] wayland_server = dependency('wayland-server', @@ -158,13 +159,6 @@ subdir('xwayland') subdir('include') -foreach name, have : internal_features - add_project_arguments( - '-DHAS_@0@=@1@'.format(name.underscorify().to_upper(), have.to_int()), - language: 'c', - ) -endforeach - wlr_inc = include_directories('include') proto_inc = include_directories('protocol') |