summaryrefslogtreecommitdiff
path: root/pkg/wayland/gen.lua
blob: b3b9a7c71eab0ab44daae49745c5b3cad04f9d28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
cflags{
	'-I $dir',
	'-I $outdir/include',
	'-I $srcdir',
	'-I $srcdir/src',
	'-isystem $builddir/pkg/expat/include',
	'-isystem $builddir/pkg/libffi/include',
}

build('sed', '$outdir/include/wayland-version.h', '$srcdir/src/wayland-version.h.in', {
	expr={
		'-e s,@WAYLAND_VERSION_MAJOR@,1,',
		'-e s,@WAYLAND_VERSION_MINOR@,20,',
		'-e s,@WAYLAND_VERSION_MICRO@,0,',
		'-e s,@WAYLAND_VERSION@,1.20.0,',
	},
})

waylandproto('protocol/wayland.xml', {
	client='include/wayland-client-protocol.h',
	server='include/wayland-server-protocol.h',
	code='src/wayland-protocol.c'
})

pkg.hdrs = {
	copy('$outdir/include', '$srcdir/src', {
		'wayland-client-core.h',
		'wayland-client.h',
		'wayland-server-core.h',
		'wayland-server.h',
		'wayland-util.h',
	}),
	copy('$outdir/include', '$srcdir/cursor', {'wayland-cursor.h'}),
	'$outdir/include/wayland-client-protocol.h',
	'$outdir/include/wayland-server-protocol.h',
	'$outdir/include/wayland-version.h',
}
pkg.deps = {
	'$gendir/headers',
	'$outdir/include/wayland-version.h',
	'pkg/libffi/headers',
}

cc('src/wayland-util.c', {'$outdir/include/wayland-version.h'})
cc('src/wayland-os.c')
cc('src/connection.c')

exe('wayland-scanner', [[
	src/(
		scanner.c
		wayland-util.c.o
	)
	$builddir/pkg/expat/libexpat.a.d
]], {'pkg/expat/headers', '$outdir/include/wayland-version.h'})
file('bin/wayland-scanner', '755', '$outdir/wayland-scanner')

lib('libwayland-server.a', [[
	src/(
		connection.c.o
		wayland-os.c.o
		wayland-protocol.c.o
		wayland-server.c
		wayland-shm.c
		wayland-util.c.o
		event-loop.c
	)
	$builddir/pkg/libffi/libffi.a
]])

lib('libwayland-client.a', [[
	src/(
		connection.c.o
		wayland-os.c.o
		wayland-protocol.c.o
		wayland-client.c
		wayland-util.c.o
	)
	$builddir/pkg/libffi/libffi.a
]])

lib('libwayland-cursor.a', [[
	cursor/(
		os-compatibility.c
		wayland-cursor.c
		xcursor.c
	)
	libwayland-client.a.d
]])

fetch 'git'