1srcs = [ 2 'xwayland.c', 3 'xwayland-input.c', 4 'xwayland-cursor.c', 5 'xwayland-shm.c', 6 'xwayland-output.c', 7 'xwayland-cvt.c', 8 'xwayland-vidmode.c', 9 '../../mi/miinitext.c', 10] 11 12scanner_dep = dependency('wayland-scanner', native: true) 13scanner = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner')) 14 15protocols_dep = dependency('wayland-protocols', version: '>= 1.8') 16protodir = protocols_dep.get_pkgconfig_variable('pkgdatadir') 17 18pointer_xml = join_paths(protodir, 'unstable', 'pointer-constraints', 'pointer-constraints-unstable-v1.xml') 19relative_xml = join_paths(protodir, 'unstable', 'relative-pointer', 'relative-pointer-unstable-v1.xml') 20tablet_xml = join_paths(protodir, 'unstable', 'tablet', 'tablet-unstable-v2.xml') 21kbgrab_xml = join_paths(protodir, 'unstable', 'xwayland-keyboard-grab', 'xwayland-keyboard-grab-unstable-v1.xml') 22xdg_output_xml = join_paths(protodir, 'unstable', 'xdg-output', 'xdg-output-unstable-v1.xml') 23dmabuf_xml = join_paths(protodir, 'unstable', 'linux-dmabuf', 'linux-dmabuf-unstable-v1.xml') 24 25client_header = generator(scanner, 26 output : '@BASENAME@-client-protocol.h', 27 arguments : ['client-header', '@INPUT@', '@OUTPUT@'] 28) 29 30if scanner_dep.version().version_compare('>= 1.14.91') 31 scanner_argument = 'private-code' 32else 33 scanner_argument = 'code' 34endif 35 36code = generator(scanner, 37 output : '@BASENAME@-protocol.c', 38 arguments : [scanner_argument, '@INPUT@', '@OUTPUT@'] 39) 40srcs += client_header.process(relative_xml) 41srcs += client_header.process(pointer_xml) 42srcs += client_header.process(tablet_xml) 43srcs += client_header.process(kbgrab_xml) 44srcs += client_header.process(xdg_output_xml) 45srcs += client_header.process(dmabuf_xml) 46srcs += code.process(relative_xml) 47srcs += code.process(pointer_xml) 48srcs += code.process(tablet_xml) 49srcs += code.process(kbgrab_xml) 50srcs += code.process(xdg_output_xml) 51srcs += code.process(dmabuf_xml) 52 53xwayland_glamor = [] 54eglstream_srcs = [] 55if build_glamor 56 srcs += 'xwayland-glamor.c' 57 if gbm_dep.found() 58 srcs += 'xwayland-glamor-gbm.c' 59 endif 60 if build_eglstream 61 eglstream_protodir = eglstream_dep.get_pkgconfig_variable('pkgdatadir') 62 eglstream_xml = join_paths(eglstream_protodir, 'wayland-eglstream.xml') 63 eglstream_controller_xml = join_paths(eglstream_protodir, 'wayland-eglstream-controller.xml') 64 65 srcs += client_header.process(eglstream_xml) 66 srcs += client_header.process(eglstream_controller_xml) 67 srcs += code.process(eglstream_xml) 68 srcs += code.process(eglstream_controller_xml) 69 70 srcs += 'xwayland-glamor-eglstream.c' 71 endif 72 srcs += 'xwayland-present.c' 73 if build_xv 74 srcs += 'xwayland-glamor-xv.c' 75 endif 76 77 srcs += client_header.process('drm.xml') 78 srcs += code.process('drm.xml') 79 xwayland_dep += gbm_dep 80 xwayland_glamor += glamor 81endif 82 83executable( 84 'Xwayland', 85 srcs, 86 include_directories: inc, 87 dependencies: [ 88 common_dep, 89 xwayland_dep, 90 ], 91 link_with: [ 92 libxserver_main, 93 xwayland_glamor, 94 libxserver_fb, 95 libxserver, 96 libxserver_xext_vidmode, 97 libxserver_xkb_stubs, 98 libxserver_xi_stubs, 99 libxserver_glx, 100 libglxvnd, 101 ], 102 install: true, 103) 104