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