1cflags{
2 '-Wall',
3 '-D _GNU_SOURCE',
4 '-D screen_new=swc__screen_new',
5 '-D remove_resource=swc__remove_resource',
6 '-I $outdir',
7 '-I $outdir/include',
8 '-I $srcdir',
9 '-isystem $builddir/pkg/fontconfig/include',
10 '-isystem $builddir/pkg/libinput/include',
11 '-isystem $builddir/pkg/libxkbcommon/include',
12 '-isystem $builddir/pkg/libdrm/include',
13 '-isystem $builddir/pkg/linux-headers/include',
14 '-isystem $builddir/pkg/pixman/include',
15 '-isystem $builddir/pkg/wayland-protocols/include',
16 '-isystem $builddir/pkg/wayland/include',
17 '-isystem $builddir/pkg/wld/include',
18}
19
20cc('launch/protocol.c')
21
22waylandproto('protocol/swc.xml', {
23 client='include/swc-client-protocol.h',
24 server='include/swc-server-protocol.h',
25 code='swc-protocol.c',
26})
27
28waylandproto('protocol/server-decoration.xml', {
29 server='include/server-decoration-server-protocol.h',
30 code='server-decoration-protocol.c',
31})
32
33pkg.hdrs = {
34 copy('$outdir/include', '$srcdir/libswc', {'swc.h'}),
35 '$outdir/include/server-decoration-server-protocol.h',
36 '$outdir/include/swc-client-protocol.h',
37 '$outdir/include/swc-server-protocol.h',
38}
39
40copy('$outdir', '$builddir/pkg/wld/protocol', {'wayland-drm-server-protocol.h'})
41
42sub('tools.ninja', function()
43 toolchain(config.host)
44 cflags{'-std=c99', '-D _POSIX_C_SOURCE=200809L'}
45 exe('convert_font', {'cursor/convert_font.c'})
46end)
47
48rule('convert_font', '$outdir/convert_font $in $out 2>/dev/null')
49build('convert_font', '$outdir/cursor/cursor_data.h', {'$srcdir/cursor/cursor.pcf', '|', '$outdir/convert_font'})
50
51pkg.deps = {
52 '$gendir/headers',
53 '$outdir/wayland-drm-server-protocol.h',
54 '$outdir/cursor/cursor_data.h',
55 'pkg/fontconfig/headers',
56 'pkg/libdrm/headers',
57 'pkg/libinput/headers',
58 'pkg/libxkbcommon/headers',
59 'pkg/linux-headers/headers',
60 'pkg/pixman/headers',
61 'pkg/wayland/headers',
62 'pkg/wayland-protocols/headers',
63 'pkg/wld/headers',
64}
65
66lib('libswc.a', [[
67 libswc/(
68 bindings.c
69 compositor.c
70 data.c
71 data_device.c
72 data_device_manager.c
73 dmabuf.c
74 drm.c
75 input.c
76 kde_decoration.c
77 keyboard.c
78 launch.c
79 mode.c
80 output.c
81 panel.c
82 panel_manager.c
83 plane.c
84 pointer.c
85 primary_plane.c
86 region.c
87 screen.c
88 shell.c
89 shell_surface.c
90 seat.c
91 shm.c
92 subcompositor.c
93 subsurface.c
94 surface.c
95 swc.c
96 util.c
97 view.c
98 wayland_buffer.c
99 window.c
100 xdg_decoration.c
101 xdg_shell.c
102 )
103 launch/protocol.c.o
104 server-decoration-protocol.c.o
105 swc-protocol.c.o
106 $builddir/(
107 pkg/libinput/libinput.a.d
108 pkg/libxkbcommon/libxkbcommon.a
109 pkg/wayland-protocols/xdg-decoration-unstable-v1-protocol.c.o
110 pkg/wayland-protocols/xdg-shell-protocol.c.o
111 pkg/wayland-protocols/linux-dmabuf-unstable-v1-protocol.c.o
112 pkg/wayland/libwayland-server.a.d
113 pkg/wld/libwld.a.d
114 )
115]])
116
117exe('swc-launch', {'launch/launch.c', 'launch/devmajor-linux.c', 'launch/protocol.c.o', '$builddir/pkg/libdrm/libdrm.a'})
118file('bin/swc-launch', '4755', '$outdir/swc-launch')
119
120fetch 'git'