aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/meson.build11
-rw-r--r--backend/x11/meson.build44
2 files changed, 47 insertions, 8 deletions
diff --git a/backend/meson.build b/backend/meson.build
index 48a0511a..dd1f4df3 100644
--- a/backend/meson.build
+++ b/backend/meson.build
@@ -1,3 +1,4 @@
+backend_parts = []
backend_files = files(
'backend.c',
'drm/atomic.c',
@@ -49,18 +50,12 @@ if logind.found()
backend_deps += logind
endif
-if conf_data.get('WLR_HAS_X11_BACKEND', false)
- backend_files += files(
- 'x11/backend.c',
- 'x11/input_device.c',
- 'x11/output.c',
- )
- backend_deps += xcb_xkb
-endif
+subdir('x11')
lib_wlr_backend = static_library(
'wlr_backend',
backend_files,
include_directories: wlr_inc,
+ link_whole: backend_parts,
dependencies: backend_deps,
)
diff --git a/backend/x11/meson.build b/backend/x11/meson.build
new file mode 100644
index 00000000..1164df1e
--- /dev/null
+++ b/backend/x11/meson.build
@@ -0,0 +1,44 @@
+x11_libs = []
+x11_required = [
+ 'xcb',
+ 'x11-xcb',
+]
+x11_optional = [
+ 'xcb-xkb',
+]
+
+foreach lib : x11_required
+ dep = dependency(lib, required: get_option('x11-backend'))
+ if not dep.found()
+ subdir_done()
+ endif
+
+ x11_libs += dep
+endforeach
+
+foreach lib : x11_optional
+ dep = dependency(lib, required: get_option(lib))
+ if dep.found()
+ x11_libs += dep
+ conf_data.set('WLR_HAS_' + lib.underscorify().to_upper(), true)
+ endif
+endforeach
+
+lib_wlr_backend_x11 = static_library(
+ 'wlr_backend_x11',
+ files(
+ 'backend.c',
+ 'input_device.c',
+ 'output.c',
+ ),
+ include_directories: wlr_inc,
+ dependencies: [
+ wayland_server,
+ pixman,
+ xkbcommon,
+ x11_libs,
+ ],
+)
+
+backend_parts += lib_wlr_backend_x11
+conf_data.set('WLR_HAS_X11_BACKEND', true)