master hovercats/oakiss / pkg / swc / gen.lua
  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'