mirror of
				https://codeberg.org/dwl/dwl-patches.git
				synced 2025-11-04 05:54:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			136 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 136cdeb302fdfe28e5cd5c6a1693b05c3d1bfb58 Mon Sep 17 00:00:00 2001
 | 
						|
From: sewn <sewn@disroot.org>
 | 
						|
Date: Sat, 7 Dec 2024 09:59:01 +0300
 | 
						|
Subject: [PATCH] add meson
 | 
						|
 | 
						|
---
 | 
						|
 .gitignore               |  1 +
 | 
						|
 meson.build              | 93 ++++++++++++++++++++++++++++++++++++++++
 | 
						|
 subprojects/wlroots.wrap |  5 +++
 | 
						|
 3 files changed, 99 insertions(+)
 | 
						|
 create mode 100644 meson.build
 | 
						|
 create mode 100644 subprojects/wlroots.wrap
 | 
						|
 | 
						|
diff --git a/.gitignore b/.gitignore
 | 
						|
index 0dde90e..9246a31 100644
 | 
						|
--- a/.gitignore
 | 
						|
+++ b/.gitignore
 | 
						|
@@ -4,3 +4,4 @@ dwl
 | 
						|
 *-protocol.h
 | 
						|
 .ccls-cache
 | 
						|
 config.h
 | 
						|
+subprojects/wlroots
 | 
						|
diff --git a/meson.build b/meson.build
 | 
						|
new file mode 100644
 | 
						|
index 0000000..e2219ec
 | 
						|
--- /dev/null
 | 
						|
+++ b/meson.build
 | 
						|
@@ -0,0 +1,93 @@
 | 
						|
+project(
 | 
						|
+	'dwl',
 | 
						|
+	'c',
 | 
						|
+	version: run_command('git', 'describe', '--tags', '--dirty', check: false).stdout().strip(),
 | 
						|
+	license: [ 'GPL-3.0-only', 'CC0-1.0', 'MIT' ],
 | 
						|
+	meson_version: '>=1.3',
 | 
						|
+	default_options: [
 | 
						|
+		'c_std=c99',
 | 
						|
+		'warning_level=2',
 | 
						|
+	],
 | 
						|
+)
 | 
						|
+
 | 
						|
+configure_file(
 | 
						|
+	input: 'config.def.h',
 | 
						|
+	output: 'config.h',
 | 
						|
+	copy: true,
 | 
						|
+	install_dir: '.',
 | 
						|
+)
 | 
						|
+
 | 
						|
+cc = meson.get_compiler('c')
 | 
						|
+
 | 
						|
+add_project_arguments([
 | 
						|
+	'-DWLR_USE_UNSTABLE',
 | 
						|
+	'-D_POSIX_C_SOURCE=200809L',
 | 
						|
+	'-DVERSION="@0@"'.format(meson.project_version()),
 | 
						|
+
 | 
						|
+	'-Wno-unused-parameter',
 | 
						|
+], language: 'c')
 | 
						|
+
 | 
						|
+wlroots = subproject('wlroots',
 | 
						|
+	default_options: [
 | 
						|
+		'backends=drm,libinput,auto',
 | 
						|
+		'default_library=static',
 | 
						|
+		'examples=false',
 | 
						|
+		'session=enabled',
 | 
						|
+	],
 | 
						|
+)
 | 
						|
+wlroots_has_xwlr = wlroots.get_variable('features').get('xwayland')
 | 
						|
+
 | 
						|
+libinput = dependency('libinput')
 | 
						|
+math = cc.find_library('m')
 | 
						|
+wayland_server = dependency('wayland-server')
 | 
						|
+xcb = dependency('xcb', required: wlroots_has_xwlr)
 | 
						|
+xcb_icccm = dependency('xcb-icccm', required: wlroots_has_xwlr)
 | 
						|
+xkbcommon = dependency('xkbcommon')
 | 
						|
+
 | 
						|
+dwl_deps = [
 | 
						|
+	libinput,
 | 
						|
+	math,
 | 
						|
+	wayland_server,
 | 
						|
+	wlroots.get_variable('wlroots'),
 | 
						|
+	xkbcommon,
 | 
						|
+]
 | 
						|
+
 | 
						|
+if wlroots_has_xwlr
 | 
						|
+	add_project_arguments('-DXWAYLAND', language: 'c')
 | 
						|
+	dwl_deps += [ xcb, xcb_icccm ]
 | 
						|
+endif
 | 
						|
+
 | 
						|
+wayland_protos = dependency('wayland-protocols')
 | 
						|
+wayland_scanner = dependency('wayland-scanner')
 | 
						|
+wayland_protocol_dir = wayland_protos.get_variable('pkgdatadir')
 | 
						|
+wayland_scanner_prog = find_program(
 | 
						|
+	wayland_scanner.get_variable('wayland_scanner'),
 | 
						|
+	native: true,
 | 
						|
+)
 | 
						|
+
 | 
						|
+protocols = [
 | 
						|
+	wayland_protocol_dir / 'staging/cursor-shape/cursor-shape-v1.xml',
 | 
						|
+	wayland_protocol_dir / 'unstable/pointer-constraints/pointer-constraints-unstable-v1.xml',
 | 
						|
+	'protocols/wlr-layer-shell-unstable-v1.xml',
 | 
						|
+	'protocols/wlr-output-power-management-unstable-v1.xml',
 | 
						|
+	wayland_protocol_dir / 'stable/xdg-shell/xdg-shell.xml',
 | 
						|
+]
 | 
						|
+protocols_src = []
 | 
						|
+
 | 
						|
+wayland_scanner_server = generator(
 | 
						|
+	wayland_scanner_prog,
 | 
						|
+	output: '@BASENAME@-protocol.h',
 | 
						|
+	arguments: ['server-header', '@INPUT@', '@OUTPUT@'],
 | 
						|
+)
 | 
						|
+
 | 
						|
+foreach xml : protocols
 | 
						|
+	protocols_src += wayland_scanner_server.process(xml)
 | 
						|
+endforeach
 | 
						|
+
 | 
						|
+executable(
 | 
						|
+	'dwl',
 | 
						|
+	[ 'dwl.c', 'util.c', protocols_src ],
 | 
						|
+	include_directories: [include_directories('.')],
 | 
						|
+	dependencies: dwl_deps,
 | 
						|
+	install: true,
 | 
						|
+)
 | 
						|
diff --git a/subprojects/wlroots.wrap b/subprojects/wlroots.wrap
 | 
						|
new file mode 100644
 | 
						|
index 0000000..3d9cbfa
 | 
						|
--- /dev/null
 | 
						|
+++ b/subprojects/wlroots.wrap
 | 
						|
@@ -0,0 +1,5 @@
 | 
						|
+[wrap-git]
 | 
						|
+url = https://gitlab.freedesktop.org/wlroots/wlroots.git
 | 
						|
+revision = master
 | 
						|
+depth = 1
 | 
						|
+clone-recursive = true
 | 
						|
-- 
 | 
						|
2.47.1
 | 
						|
 |