diff options
Diffstat (limited to 'pkg/swc/gen.lua')
| -rw-r--r-- | pkg/swc/gen.lua | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/pkg/swc/gen.lua b/pkg/swc/gen.lua new file mode 100644 index 00000000..523503bb --- /dev/null +++ b/pkg/swc/gen.lua @@ -0,0 +1,104 @@ +cflags{ + '-D _GNU_SOURCE', + '-D screen_new=swc__screen_new', + '-D remove_resource=swc__remove_resource', + '-I $outdir', + '-I $outdir/include', + '-I $srcdir', + '-I pkg/fontconfig/src', + '-I pkg/libdrm/src/include/drm', + '-I pkg/libdrm/src', + '-I pkg/libinput/src/src', + '-I pkg/libxkbcommon/src', + '-I $builddir/pkg/pixman/include', + '-I $builddir/pkg/wayland-protocols/include', + '-I $builddir/pkg/wayland/include', + '-I $builddir/pkg/wld/include', +} + +cc('launch/protocol.c') + +waylandproto('protocol/swc.xml', 'include/swc-client-protocol.h', 'include/swc-server-protocol.h', 'swc-protocol.c') + +pkg.hdrs = { + copy('$outdir/include', '$srcdir/libswc', {'swc.h'}), + '$outdir/include/swc-client-protocol.h', + '$outdir/include/swc-server-protocol.h', +} + +copy('$outdir', '$builddir/pkg/wld/protocol', {'wayland-drm-server-protocol.h'}) + +sub('tools.ninja', function() + toolchain 'host' + cflags{'-std=c99', '-D _POSIX_C_SOURCE=200809L'} + exe('convert_font', {'cursor/convert_font.c'}) +end) + +rule('convert_font', '$outdir/convert_font $in $out.tmp 2>/dev/null && mv $out.tmp $out') +build('convert_font', '$outdir/cursor/cursor_data.h', {'$srcdir/cursor/cursor.pcf', '|', '$outdir/convert_font'}) + +pkg.deps = { + '$outdir/wayland-drm-server-protocol.h', + '$outdir/include/swc-server-protocol.h', + '$outdir/cursor/cursor_data.h', + '$builddir/pkg/fontconfig/fetch.stamp', + '$builddir/pkg/libdrm/fetch.stamp', + '$builddir/pkg/libinput/fetch.stamp', + '$builddir/pkg/libxkbcommon/fetch.stamp', + 'pkg/pixman/headers', + 'pkg/wayland/headers', + 'pkg/wayland-protocols/headers', + 'pkg/wld/headers', +} + +lib('libswc.a', [[ + libswc/( + bindings.c + compositor.c + cursor_plane.c + data.c + data_device.c + data_device_manager.c + drm.c + input.c + keyboard.c + launch.c + mode.c + output.c + panel.c + panel_manager.c + pointer.c + primary_plane.c + region.c + screen.c + seat.c + shell.c + shell_surface.c + shm.c + subcompositor.c + subsurface.c + surface.c + swc.c + util.c + view.c + wayland_buffer.c + window.c + xdg_popup.c + xdg_shell.c + xdg_surface.c + ) + launch/protocol.c.o + swc-protocol.c.o + $builddir/( + pkg/libinput/libinput.a.d + pkg/libxkbcommon/libxkbcommon.a + pkg/wayland-protocols/xdg-shell-unstable-v5-protocol.c.o + pkg/wayland/libwayland-server.a.d + pkg/wld/libwld.a.d + ) +]]) + +exe('swc-launch', {'launch/launch.c', 'launch/protocol.c.o', '$builddir/pkg/libdrm/libdrm.a'}) +file('bin/swc-launch', '4755', '$outdir/swc-launch') + +fetch 'git' |
