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