xref: /OK3568_Linux_fs/external/xserver/hw/xwayland/meson.build (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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