aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/drm/meson.build10
-rw-r--r--backend/headless/meson.build5
-rw-r--r--backend/libinput/meson.build10
-rw-r--r--backend/meson.build90
-rw-r--r--backend/multi/meson.build1
-rw-r--r--backend/noop/meson.build4
-rw-r--r--backend/rdp/meson.build36
-rw-r--r--backend/session/meson.build53
-rw-r--r--backend/wayland/meson.build20
-rw-r--r--backend/x11/meson.build34
10 files changed, 166 insertions, 97 deletions
diff --git a/backend/drm/meson.build b/backend/drm/meson.build
new file mode 100644
index 00000000..ffddfdfc
--- /dev/null
+++ b/backend/drm/meson.build
@@ -0,0 +1,10 @@
+wlr_files += files(
+ 'atomic.c',
+ 'backend.c',
+ 'cvt.c',
+ 'drm.c',
+ 'legacy.c',
+ 'properties.c',
+ 'renderer.c',
+ 'util.c',
+)
diff --git a/backend/headless/meson.build b/backend/headless/meson.build
new file mode 100644
index 00000000..e38ce133
--- /dev/null
+++ b/backend/headless/meson.build
@@ -0,0 +1,5 @@
+wlr_files += files(
+ 'backend.c',
+ 'input_device.c',
+ 'output.c',
+)
diff --git a/backend/libinput/meson.build b/backend/libinput/meson.build
new file mode 100644
index 00000000..ff78d2f8
--- /dev/null
+++ b/backend/libinput/meson.build
@@ -0,0 +1,10 @@
+wlr_files += files(
+ 'backend.c',
+ 'events.c',
+ 'keyboard.c',
+ 'pointer.c',
+ 'switch.c',
+ 'tablet_pad.c',
+ 'tablet_tool.c',
+ 'touch.c',
+)
diff --git a/backend/meson.build b/backend/meson.build
index e4a484f4..373102b6 100644
--- a/backend/meson.build
+++ b/backend/meson.build
@@ -1,82 +1,12 @@
-backend_parts = []
-backend_files = files(
- 'backend.c',
- 'drm/atomic.c',
- 'drm/backend.c',
- 'drm/cvt.c',
- 'drm/drm.c',
- 'drm/legacy.c',
- 'drm/properties.c',
- 'drm/renderer.c',
- 'drm/util.c',
- 'headless/backend.c',
- 'headless/input_device.c',
- 'headless/output.c',
- 'libinput/backend.c',
- 'libinput/events.c',
- 'libinput/keyboard.c',
- 'libinput/pointer.c',
- 'libinput/switch.c',
- 'libinput/tablet_pad.c',
- 'libinput/tablet_tool.c',
- 'libinput/touch.c',
- 'multi/backend.c',
- 'noop/backend.c',
- 'noop/output.c',
- 'session/direct-ipc.c',
- 'session/noop.c',
- 'session/session.c',
- 'wayland/backend.c',
- 'wayland/output.c',
- 'wayland/wl_seat.c',
- 'wayland/tablet_v2.c',
-)
-
-backend_deps = [
- drm,
- egl,
- gbm,
- libinput,
- pixman,
- xkbcommon,
- wayland_server,
- wlr_protos,
- wlr_render,
-]
-
-if host_machine.system().startswith('freebsd')
- backend_files += files('session/direct-freebsd.c')
-else
- backend_files += files('session/direct.c')
-endif
-
-if logind.found()
- backend_files += files('session/logind.c')
- backend_deps += logind
-endif
-
-if freerdp.found() and winpr2.found()
- backend_files += files(
- 'rdp/backend.c',
- 'rdp/keyboard.c',
- 'rdp/listener.c',
- 'rdp/output.c',
- 'rdp/peer.c',
- 'rdp/pointer.c',
- )
- backend_deps += [
- freerdp,
- winpr2
- ]
- conf_data.set10('WLR_HAS_RDP_BACKEND', true)
-endif
-
+wlr_files += files('backend.c')
+
+subdir('drm')
+subdir('headless')
+subdir('libinput')
+subdir('multi')
+subdir('noop')
+subdir('rdp')
+subdir('wayland')
subdir('x11')
-lib_wlr_backend = static_library(
- 'wlr_backend',
- backend_files,
- include_directories: wlr_inc,
- link_whole: backend_parts,
- dependencies: backend_deps,
-)
+subdir('session')
diff --git a/backend/multi/meson.build b/backend/multi/meson.build
new file mode 100644
index 00000000..be4abfb6
--- /dev/null
+++ b/backend/multi/meson.build
@@ -0,0 +1 @@
+wlr_files += files('backend.c')
diff --git a/backend/noop/meson.build b/backend/noop/meson.build
new file mode 100644
index 00000000..950c0716
--- /dev/null
+++ b/backend/noop/meson.build
@@ -0,0 +1,4 @@
+wlr_files += files(
+ 'backend.c',
+ 'output.c',
+)
diff --git a/backend/rdp/meson.build b/backend/rdp/meson.build
new file mode 100644
index 00000000..40259c65
--- /dev/null
+++ b/backend/rdp/meson.build
@@ -0,0 +1,36 @@
+rdp_libs = []
+rdp_required = [
+ 'freerdp2',
+ 'winpr2',
+]
+
+msg = []
+if get_option('freerdp').enabled()
+ msg += 'Install "@0@" or pass "-Dfreerdp=disabled".'
+endif
+if not get_option('freerdp').disabled()
+ msg += 'Required for RDP backend support.'
+endif
+
+foreach lib : rdp_required
+ dep = dependency(lib,
+ required: get_option('freerdp'),
+ not_found_message: '\n'.join(msg).format(lib),
+ )
+ if not dep.found()
+ subdir_done()
+ endif
+
+ rdp_libs += dep
+endforeach
+
+wlr_files += files(
+ 'backend.c',
+ 'keyboard.c',
+ 'listener.c',
+ 'output.c',
+ 'peer.c',
+ 'pointer.c',
+)
+wlr_deps += rdp_libs
+conf_data.set10('WLR_HAS_RDP_BACKEND', true)
diff --git a/backend/session/meson.build b/backend/session/meson.build
new file mode 100644
index 00000000..2c3f09c7
--- /dev/null
+++ b/backend/session/meson.build
@@ -0,0 +1,53 @@
+wlr_files += files(
+ 'direct-ipc.c',
+ 'noop.c',
+ 'session.c',
+)
+
+if host_machine.system().startswith('freebsd')
+ wlr_files += files('direct-freebsd.c')
+else
+ wlr_files += files('direct.c')
+endif
+
+# logind
+
+msg = []
+if get_option('logind').enabled()
+ msg += 'Install "lib@0@" or pass "-Dlogind=disabled".'
+endif
+if not get_option('logind').disabled()
+ msg += 'Required for logind support.'
+ msg += 'You may need to pass "-Dlogind-provider=elogind" or "-Dlogind-provider=systemd" to ensure the correct library is detected.'
+endif
+
+logind = dependency('lib' + get_option('logind-provider'),
+ required: get_option('logind'),
+ not_found_message: '\n'.join(msg).format(get_option('logind-provider')),
+ version: '>=237',
+)
+if logind.found()
+ wlr_files += files('logind.c')
+ wlr_deps += logind
+ conf_data.set10('WLR_HAS_' + get_option('logind-provider').to_upper(), true)
+endif
+
+# libcap
+
+msg = []
+if get_option('libcap').enabled()
+ msg += 'Install "libcap" or pass "-Dlibcap=disabled".'
+endif
+if not get_option('libcap').disabled()
+ msg += 'Required for POSIX capability support (Not needed if using logind).'
+endif
+
+libcap = dependency('libcap',
+ required: get_option('libcap'),
+ not_found_message: '\n'.join(msg),
+)
+if libcap.found()
+ conf_data.set10('WLR_HAS_LIBCAP', true)
+ wlr_deps += libcap
+endif
+
diff --git a/backend/wayland/meson.build b/backend/wayland/meson.build
new file mode 100644
index 00000000..73336d20
--- /dev/null
+++ b/backend/wayland/meson.build
@@ -0,0 +1,20 @@
+wlr_files += files(
+ 'backend.c',
+ 'output.c',
+ 'wl_seat.c',
+ 'tablet_v2.c',
+)
+
+client_protos = [
+ 'linux-dmabuf-unstable-v1',
+ 'pointer-gestures-unstable-v1',
+ 'presentation-time',
+ 'relative-pointer-unstable-v1',
+ 'tablet-unstable-v2',
+ 'xdg-decoration-unstable-v1',
+ 'xdg-shell',
+]
+
+foreach proto : client_protos
+ wlr_files += get_variable(proto.underscorify() + '_h')
+endforeach
diff --git a/backend/x11/meson.build b/backend/x11/meson.build
index 19e873ab..40530bb0 100644
--- a/backend/x11/meson.build
+++ b/backend/x11/meson.build
@@ -6,8 +6,19 @@ x11_required = [
'xcb-xfixes',
]
+msg = []
+if get_option('x11-backend').enabled()
+ msg += 'Install "@0@" or pass "-Dx11-backend=disabled" to disable it.'
+endif
+if not get_option('x11-backend').disabled()
+ msg += 'Required for X11 backend support.'
+endif
+
foreach lib : x11_required
- dep = dependency(lib, required: get_option('x11-backend'))
+ dep = dependency(lib,
+ required: get_option('x11-backend'),
+ not_found_message: '\n'.join(msg).format(lib),
+ )
if not dep.found()
subdir_done()
endif
@@ -15,21 +26,10 @@ foreach lib : x11_required
x11_libs += dep
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,
- ],
+wlr_files += files(
+ 'backend.c',
+ 'input_device.c',
+ 'output.c',
)
-
-backend_parts += lib_wlr_backend_x11
+wlr_deps += x11_libs
conf_data.set10('WLR_HAS_X11_BACKEND', true)