diff --git a/kiwmi/meson.build b/kiwmi/meson.build index 8cf75aa..3eddef6 100644 --- a/kiwmi/meson.build +++ b/kiwmi/meson.build @@ -11,6 +11,7 @@ kiwmi_sources = files( kiwmi_deps = [ lua, + protocols_server, wayland_server, wlroots, xkbcommon, diff --git a/meson.build b/meson.build index 883f53f..1bd57f7 100644 --- a/meson.build +++ b/meson.build @@ -16,11 +16,13 @@ add_project_arguments( language: 'c', ) -git = find_program('git', required: false) -lua = dependency('lua') -wayland_server = dependency('wayland-server') -wlroots = dependency('wlroots') -xkbcommon = dependency('xkbcommon') +git = find_program('git', required: false) +lua = dependency('lua') +wayland_protocols = dependency('wayland-protocols') +wayland_scanner = dependency('wayland-scanner') +wayland_server = dependency('wayland-server') +wlroots = dependency('wlroots') +xkbcommon = dependency('xkbcommon') include = include_directories('include') @@ -45,4 +47,5 @@ else add_project_arguments('-DUNUSED(x)=UNUSED_ ## x', language: 'c') endif +subdir('protocols') subdir('kiwmi') diff --git a/protocols/meson.build b/protocols/meson.build new file mode 100644 index 0000000..a917ad1 --- /dev/null +++ b/protocols/meson.build @@ -0,0 +1,35 @@ +wayland_protocols_dir = wayland_protocols.get_pkgconfig_variable('pkgdatadir') +wayland_scanner_bin = wayland_scanner.get_pkgconfig_variable('wayland_scanner') + +protocols_server = [ + wayland_protocols_dir / 'stable/xdg-shell/xdg-shell.xml', +] + +protocols_server_src = [] +protocols_server_inc = [] + +foreach protocol : protocols_server + protocols_server_src += custom_target( + protocol.underscorify() + '_server_c', + input: protocol, + output: '@BASENAME@-protocol.c', + command: [wayland_scanner_bin, 'private-code', '@INPUT@', '@OUTPUT@'], + ) + + protocols_server_inc += custom_target( + protocol.underscorify() + '_server_h', + input: protocol, + output: '@BASENAME@-protocol.h', + command: [wayland_scanner_bin, 'server-header', '@INPUT@', '@OUTPUT@'], + ) +endforeach + +protocols_server_lib = static_library( + 'protocols_server', + [protocols_server_src, protocols_server_inc], +) + +protocols_server = declare_dependency( + link_with: protocols_server_lib, + sources: protocols_server_inc, +)