meson.build revision c82838c1
1version_split = meson.project_version().split('.')
2major = version_split[0].to_int()
3minor = version_split[1].to_int()
4patch = version_split[2].to_int()
5
6# convert to the old-style 1.x.y version scheme used up to 1.20.x for backwards compatibility
7release = 1 * 10000000 + major * 100000 + minor * 1000 + patch
8
9dri_dep = dependency('dri', required: build_glx)
10
11conf_data = configuration_data()
12conf_data.set('_DIX_CONFIG_H_', '1')
13
14conf_data.set('HAVE_TYPEOF', cc.compiles('''
15    int foo(int bar) { typeof(bar) baz = 1; return baz; }
16''',
17    name: 'typeof()') ? '1' : false)
18
19# For feature macros we're using either false (boolean) or '1', which correspond to the macro being
20# not defined at all and defined to 1. This is to match autotools behavior and thus preserve
21# backwards  compatibility with all the existing code that uses #ifdef to check if feature is
22# enabled. This ifdef would pass if the macro is defined to 0 which would silently break code
23# in various places.
24#
25# As a complication when we read the configuration from conf_data back we get either string or
26# bool. Meson does not like comparing things of different types so we always convert the returned
27# value to an integer using to_int().
28conf_data.set('MONOTONIC_CLOCK', cc.has_function('clock_gettime') and
29cc.compiles('''
30    #define _POSIX_C_SOURCE 200112L
31    #include <time.h>
32    #include <unistd.h>
33    #ifndef CLOCK_MONOTONIC
34    #error CLOCK_MONOTONIC not defined
35    #endif
36''',
37    name: 'CLOCK_MONOTONIC') ? '1' : false)
38
39conf_data.set('XSERVER_DTRACE', with_dtrace ? '1' : false)
40
41if host_machine.endian() == 'little'
42    conf_data.set('X_BYTE_ORDER', 'X_LITTLE_ENDIAN')
43else
44    conf_data.set('X_BYTE_ORDER', 'X_BIG_ENDIAN')
45endif
46
47glx_align64 = []
48if cc.sizeof('unsigned long') == 8
49   conf_data.set('_XSERVER64', '1')
50   glx_align64 = '-D__GLX_ALIGN64'
51endif
52
53conf_data.set('_GNU_SOURCE', '1')
54
55# autoconf checks for /dev/xf86 here, but the test should be based on
56# the target, not the build system.  Could we get rid of this and just
57# ifdef for openbsd?
58conf_data.set('HAS_APERTURE_DRV', host_machine.system() == 'openbsd' ? '1' : false)
59
60if get_option('input_thread') == 'false'
61  enable_input_thread = false
62else
63  enable_input_thread = cc.has_header_symbol('pthread.h',
64					     'PTHREAD_MUTEX_RECURSIVE')
65  if not enable_input_thread and get_option('input_thread') == 'true'
66    error('Input thread enabled and PTHREAD_MUTEX_RECURSIVE not found')
67  endif
68  if host_machine.system() == 'windows' and get_option('input_thread') == 'auto'
69      enable_input_thread = false
70  endif
71endif
72conf_data.set('INPUTTHREAD', enable_input_thread ? '1' : false)
73
74if cc.compiles('''
75    #define _GNU_SOURCE 1
76    #include <pthread.h>
77    void foo(int bar) { pthread_setname_np(pthread_self(), "example"); }
78''',
79    args: '-Werror-implicit-function-declaration',
80    name: 'pthread_setname_np(tid, name)')
81    conf_data.set('HAVE_PTHREAD_SETNAME_NP_WITH_TID', 1)
82elif cc.compiles('''
83    #define _GNU_SOURCE 1
84    #include <pthread.h>
85    void foo(int bar) { pthread_setname_np("example"); }
86''',
87    args: '-Werror-implicit-function-declaration',
88    name: 'pthread_setname_np(name)')
89    conf_data.set('HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID', 1)
90endif
91
92conf_data.set('HAVE_LIBBSD', libbsd_dep.found() ? '1' : false)
93# Note: this symbol is used by libXtrans.
94conf_data.set('HAVE_SYSTEMD_DAEMON', libsystemd_daemon_dep.found() ? '1' : false)
95conf_data.set('CONFIG_UDEV', build_udev ? '1' : false)
96conf_data.set('CONFIG_UDEV_KMS', build_udev_kms ? '1' : false)
97conf_data.set('HAVE_DBUS', build_dbus ? '1' : false)
98conf_data.set('CONFIG_HAL', build_hal ? '1' : false)
99conf_data.set('SYSTEMD_LOGIND', build_systemd_logind ? '1' : false)
100conf_data.set('NEED_DBUS', build_systemd_logind or build_hal ? '1' : false)
101conf_data.set('CONFIG_WSCONS', host_machine.system() == 'openbsd' ? '1' : false)
102
103conf_data.set('HAVE_XSHMFENCE', xshmfence_dep.found() ? '1' : false)
104conf_data.set('WITH_LIBDRM', libdrm_required ? '1' : false)
105conf_data.set('GLAMOR_HAS_EGL_QUERY_DMABUF',
106              epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.4.4') ? '1' : false)
107conf_data.set('GLAMOR_HAS_EGL_QUERY_DRIVER',
108              epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.5.4') ? '1' : false)
109conf_data.set('GLXEXT', build_glx ? '1' : false)
110conf_data.set('GLAMOR', build_glamor ? '1' : false)
111conf_data.set('GLAMOR_HAS_GBM', gbm_dep.found() ? '1' : false)
112conf_data.set('GLAMOR_HAS_GBM_LINEAR',
113              build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 10.6') ? '1' : false)
114conf_data.set('GBM_BO_WITH_MODIFIERS',
115              build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 17.1') ? '1' : false)
116
117conf_data.set_quoted('SERVER_MISC_CONFIG_PATH', serverconfigdir)
118conf_data.set_quoted('PROJECTROOT', get_option('prefix'))
119conf_data.set_quoted('SYSCONFDIR', join_paths(get_option('prefix'), get_option('sysconfdir')))
120conf_data.set_quoted('SUID_WRAPPER_DIR', join_paths(get_option('prefix'), get_option('libexecdir')))
121conf_data.set_quoted('COMPILEDDEFAULTFONTPATH', default_font_path)
122
123conf_data.set('XORG_VERSION_CURRENT', release)
124
125conf_data.set('HASXDMAUTH', has_xdm_auth ? '1' : false)
126conf_data.set('SECURE_RPC', get_option('secure-rpc') ? '1' : false)
127
128conf_data.set('HAVE_DLFCN_H', cc.has_header('dlfcn.h') ? '1' : false)
129conf_data.set('HAVE_EXECINFO_H', cc.has_header('execinfo.h') ? '1' : false)
130conf_data.set('HAVE_FCNTL_H', cc.has_header('fcntl.h') ? '1' : false)
131conf_data.set('HAVE_FNMATCH_H', cc.has_header('fnmatch.h') ? '1' : false)
132conf_data.set('HAVE_LINUX_AGPGART_H', cc.has_header('linux/agpgart.h') ? '1' : false)
133conf_data.set('HAVE_STDLIB_H', cc.has_header('stdlib.h') ? '1' : false)
134conf_data.set('HAVE_STRING_H', cc.has_header('string.h') ? '1' : false)
135conf_data.set('HAVE_STRINGS_H', cc.has_header('strings.h') ? '1' : false)
136conf_data.set('HAVE_SYS_AGPGART_H', cc.has_header('sys/agpgart.h') ? '1' : false)
137conf_data.set('HAVE_SYS_AGPIO_H', cc.has_header('sys/agpio.h') ? '1' : false)
138conf_data.set('HAVE_SYS_UTSNAME_H', cc.has_header('sys/utsname.h') ? '1' : false)
139conf_data.set('HAVE_SYS_SYSMACROS_H', cc.has_header('sys/sysmacros.h') ? '1' : false)
140conf_data.set('HAVE_UNISTD_H', cc.has_header('unistd.h') ? '1' : false)
141
142conf_data.set('HAVE_ARC4RANDOM_BUF', cc.has_function('arc4random_buf', dependencies: libbsd_dep) ? '1' : false)
143conf_data.set('HAVE_BACKTRACE', cc.has_function('backtrace') ? '1' : false)
144conf_data.set('HAVE_CBRT', cc.has_function('cbrt') ? '1' : false)
145conf_data.set('HAVE_EPOLL_CREATE1', cc.has_function('epoll_create1') ? '1' : false)
146conf_data.set('HAVE_GETUID', cc.has_function('getuid') ? '1' : false)
147conf_data.set('HAVE_GETEUID', cc.has_function('geteuid') ? '1' : false)
148conf_data.set('HAVE_ISASTREAM', cc.has_function('isastream') ? '1' : false)
149conf_data.set('HAVE_ISSETUGID', cc.has_function('issetugid') ? '1' : false)
150conf_data.set('HAVE_GETIFADDRS', cc.has_function('getifaddrs') ? '1' : false)
151conf_data.set('HAVE_GETPEEREID', cc.has_function('getpeereid') ? '1' : false)
152conf_data.set('HAVE_GETPEERUCRED', cc.has_function('getpeerucred') ? '1' : false)
153conf_data.set('HAVE_GETPROGNAME', cc.has_function('getprogname') ? '1' : false)
154conf_data.set('HAVE_GETZONEID', cc.has_function('getzoneid') ? '1' : false)
155conf_data.set('HAVE_MEMFD_CREATE', cc.has_function('memfd_create') ? '1' : false)
156conf_data.set('HAVE_MKOSTEMP', cc.has_function('mkostemp') ? '1' : false)
157conf_data.set('HAVE_MMAP', cc.has_function('mmap') ? '1' : false)
158conf_data.set('HAVE_POLL', cc.has_function('poll') ? '1' : false)
159conf_data.set('HAVE_POLLSET_CREATE', cc.has_function('pollset_create') ? '1' : false)
160conf_data.set('HAVE_POSIX_FALLOCATE', cc.has_function('posix_fallocate') ? '1' : false)
161conf_data.set('HAVE_PORT_CREATE', cc.has_function('port_create') ? '1' : false)
162conf_data.set('HAVE_REALLOCARRAY', cc.has_function('reallocarray', dependencies: libbsd_dep) ? '1' : false)
163conf_data.set('HAVE_SETEUID', cc.has_function('seteuid') ? '1' : false)
164conf_data.set('HAVE_SETITIMER', cc.has_function('setitimer') ? '1' : false)
165conf_data.set('HAVE_SHMCTL64', cc.has_function('shmctl64') ? '1' : false)
166conf_data.set('HAVE_SIGACTION', cc.has_function('sigaction') ? '1' : false)
167conf_data.set('HAVE_SIGPROCMASK', cc.has_function('sigprocmask') ? '1' : false)
168conf_data.set('HAVE_STRCASECMP', cc.has_function('strcasecmp') ? '1' : false)
169conf_data.set('HAVE_STRCASESTR', cc.has_function('strcasestr') ? '1' : false)
170conf_data.set('HAVE_STRLCAT', cc.has_function('strlcat', dependencies: libbsd_dep) ? '1' : false)
171conf_data.set('HAVE_STRLCPY', cc.has_function('strlcpy', dependencies: libbsd_dep) ? '1' : false)
172conf_data.set('HAVE_STRNCASECMP', cc.has_function('strncasecmp') ? '1' : false)
173conf_data.set('HAVE_STRNDUP', cc.has_function('strndup') and cc.has_header_symbol('string.h', 'strndup') ? '1' : false)
174conf_data.set('HAVE_TIMINGSAFE_MEMCMP', cc.has_function('timingsafe_memcmp') ? '1' : false)
175conf_data.set('HAVE_VASPRINTF', cc.has_function('vasprintf') ? '1' : false)
176conf_data.set('HAVE_VSNPRINTF', cc.has_function('vsnprintf') ? '1' : false)
177conf_data.set('HAVE_WALKCONTEXT', cc.has_function('walkcontext') ? '1' : false)
178
179conf_data.set('BUSFAULT', conf_data.get('HAVE_SIGACTION'))
180
181# Don't let X dependencies typedef 'pointer'
182conf_data.set('_XTYPEDEF_POINTER', '1')
183conf_data.set('_XITYPEDEF_POINTER', '1')
184
185conf_data.set('LISTEN_TCP', get_option('listen_tcp'))
186conf_data.set('LISTEN_UNIX', get_option('listen_unix'))
187conf_data.set('LISTEN_LOCAL', get_option('listen_local'))
188
189if cc.has_header_symbol('sys/socket.h', 'SCM_RIGHTS')
190  conf_data.set('XTRANS_SEND_FDS', '1')
191endif
192
193if conf_data.get('HAVE_GETPEEREID').to_int() == 0 and conf_data.get('HAVE_GETPEERUCRED').to_int() == 0
194    if not cc.has_header_symbol('sys/socket.h', 'SO_PEERCRED')
195        conf_data.set('NO_LOCAL_CLIENT_CRED', 1)
196    endif
197endif
198
199conf_data.set('TCPCONN', '1')
200conf_data.set('UNIXCONN', host_machine.system() != 'windows' ? '1' : false)
201conf_data.set('IPv6', build_ipv6 ? '1' : false)
202
203conf_data.set('BIGREQS', '1')
204if build_composite
205    conf_data.set('COMPOSITE', '1')
206endif
207conf_data.set('DAMAGE', '1')
208conf_data.set('DBE', '1')
209conf_data.set('DGA', build_dga ? '1' : false)
210conf_data.set('DPMSExtension', build_dpms ? '1' : false)
211conf_data.set('DRI2', build_dri2 ? '1' : false)
212conf_data.set('DRI3', build_dri3 ? '1' : false)
213if build_glx
214    conf_data.set_quoted('DRI_DRIVER_PATH', dri_dep.get_pkgconfig_variable('dridriverdir'))
215endif
216conf_data.set('HAS_SHM', build_mitshm ? '1' : false)
217conf_data.set('MITSHM', build_mitshm ? '1' : false)
218conf_data.set('PANORAMIX', build_xinerama ? '1' : false)
219conf_data.set('PRESENT', '1')
220conf_data.set('RANDR', '1')
221conf_data.set('RES', build_res ? '1' : false)
222conf_data.set('RENDER', '1')
223conf_data.set('SCREENSAVER', build_screensaver ? '1' : false)
224conf_data.set('SHAPE', '1')
225conf_data.set('XACE', build_xace ? '1' : false)
226conf_data.set('XCMISC', '1')
227conf_data.set('XCSECURITY', build_xsecurity ? '1' : false)
228conf_data.set('XDMCP', xdmcp_dep.found() ? '1' : false)
229conf_data.set('XF86BIGFONT', build_xf86bigfont ? '1' : false)
230conf_data.set('XF86DRI', build_dri1 ? '1' : false)
231conf_data.set('XF86VIDMODE', 1)
232conf_data.set('XFIXES', '1')
233conf_data.set('XFreeXDGA', build_dga ? '1' : false)
234conf_data.set('XINERAMA', build_xinerama ? '1' : false)
235conf_data.set('XINPUT', '1')
236conf_data.set('XRECORD', '1')
237conf_data.set('XSELINUX', build_xselinux ? '1' : false)
238conf_data.set('XSYNC', '1')
239conf_data.set('XTEST', '1')
240conf_data.set('XV', build_xv ? '1' : false)
241conf_data.set('XvExtension', build_xv ? '1' : false)
242conf_data.set('XvMCExtension', build_xvmc ? '1' : false)
243
244conf_data.set('HAVE_SHA1_IN_' + sha1.to_upper(), '1', description: 'Use @0@ SHA1 functions'.format(sha1))
245conf_data.set('HAVE_LIBUNWIND', get_option('libunwind'))
246
247conf_data.set('HAVE_APM', (build_apm or build_acpi) ? '1' : false)
248conf_data.set('HAVE_ACPI', build_acpi ? '1' : false)
249
250conf_data.set('DDXOSVERRORF', build_xwin ? '1' : false)
251conf_data.set('DDXBEFORERESET', build_xwin ? '1' : false)
252enable_debugging = get_option('buildtype') == 'debug'
253conf_data.set('DEBUG', enable_debugging ? '1' : false)
254
255conf_data.set_quoted('XVENDORNAME', get_option('vendor_name'))
256conf_data.set_quoted('XVENDORNAMESHORT', get_option('vendor_name_short'))
257conf_data.set_quoted('__VENDORDWEBSUPPORT__', get_option('vendor_web'))
258conf_data.set_quoted('BUILDERADDR', get_option('builder_addr'))
259conf_data.set_quoted('BUILDERSTRING', get_option('builder_string'))
260
261if build_rootless
262    conf_data.set('ROOTLESS', build_rootless ? '1' : false)
263    conf_data.set('ROOTLESS_WORKAROUND', 1)
264    conf_data.set('ROOTLESS_SAFEALPHA', 1)
265endif
266
267#
268# for xorg-server.h only
269#
270defines_svr4 = '''#if !defined(SVR4) && !defined(__svr4__) && !defined(__SVR4)
271#error "I am not SVR4"
272#endif
273'''
274
275# BSD specifics
276supports_pccons = false
277supports_pcvt = false
278supports_syscons = false
279supports_wscons = false
280csrg_based = false
281
282if host_machine.system() == 'freebsd' or host_machine.system() == 'dragonfly'
283  supports_pccons = true
284  supports_pcvt = true
285  supports_syscons = true
286  csrg_based = true
287endif
288
289if host_machine.system() == 'kfreebsd'
290  supports_pccons = true
291  supports_pcvt = true
292  supports_syscons = true
293endif
294
295if host_machine.system() == 'netbsd'
296  supports_pccons = true
297  supports_pcvt = true
298  supports_wscons = true
299  csrg_based = true
300endif
301
302if host_machine.system() == 'openbsd'
303  supports_pcvt = true
304  supports_wscons = true
305  csrg_based = true
306endif
307
308if host_machine.system() == 'darwin'
309  csrg_based = true
310endif
311
312conf_data.set('SVR4', cc.compiles(defines_svr4) ? '1' : false)
313conf_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
314conf_data.set('XORGSERVER', build_xorg ? '1' : false)
315conf_data.set_quoted('XCONFIGFILE', 'xorg.conf')
316conf_data.set_quoted('__XSERVERNAME__', 'Xorg')
317conf_data.set('WITH_VGAHW', build_vgahw ? '1' : false)
318conf_data.set('CSRG_BASED', csrg_based ? '1' : false)
319conf_data.set('PCCONS_SUPPORT', supports_pccons ? '1' : false)
320conf_data.set('PCVT_SUPPORT', supports_pcvt ? '1' : false)
321conf_data.set('SYSCONS_SUPPORT', supports_syscons ? '1' : false)
322conf_data.set('WSCONS_SUPPORT', supports_wscons ? '1' : false)
323conf_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess') ? '1' : false)
324conf_data.set('XSERVER_PLATFORM_BUS', build_udev_kms ? '1' : false)
325
326configure_file(output : 'dix-config.h',
327               configuration : conf_data)
328
329configure_file(output : 'xorg-server.h',
330               input : 'xorg-server.h.meson.in',
331               configuration : conf_data,
332               install: build_xorg,
333               install_dir: xorgsdkdir)
334
335version_data = configuration_data()
336version_data.set('VENDOR_RELEASE', '@0@'.format(release))
337version_data.set_quoted('VENDOR_NAME', get_option('vendor_name'))
338version_data.set_quoted('VENDOR_NAME_SHORT', get_option('vendor_name_short'))
339version_data.set_quoted('VENDOR_WEB', get_option('vendor_web'))
340version_data.set_quoted('VENDOR_MAN_VERSION', 'Version @0@.@1@.@2@'.format(major, minor, patch))
341configure_file(output : 'version-config.h',
342               configuration : version_data)
343
344xkb_data = configuration_data()
345
346xkb_data.set_quoted('XKB_BIN_DIRECTORY', xkb_bin_dir)
347xkb_data.set_quoted('XKB_BASE_DIRECTORY', xkb_dir)
348xkb_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
349xkb_data.set_quoted('XKB_DFLT_MODEL', get_option('xkb_default_model'))
350xkb_data.set_quoted('XKB_DFLT_LAYOUT', get_option('xkb_default_layout'))
351xkb_data.set_quoted('XKB_DFLT_VARIANT', get_option('xkb_default_variant'))
352xkb_data.set_quoted('XKB_DFLT_OPTIONS', get_option('xkb_default_options'))
353xkb_data.set_quoted('XKM_OUTPUT_DIR', xkb_output_dir + '/')
354
355configure_file(output : 'xkb-config.h',
356               configuration : xkb_data)
357
358xorg_data = configuration_data()
359
360xorg_data.set_quoted('XORG_BIN_DIRECTORY', get_option('bindir'))
361xorg_data.set('XORG_VERSION_CURRENT', release)
362xorg_data.set_quoted('XF86CONFIGFILE', 'xorg.conf')
363xorg_data.set_quoted('XCONFIGFILE', 'xorg.conf')
364xorg_data.set_quoted('XCONFIGDIR', 'xorg.conf.d')
365xorg_data.set_quoted('DEFAULT_XDG_DATA_HOME', '.local/share')
366xorg_data.set_quoted('DEFAULT_XDG_DATA_HOME_LOGDIR', 'xorg')
367xorg_data.set_quoted('DEFAULT_LOGDIR', log_dir)
368xorg_data.set_quoted('DEFAULT_LOGPREFIX', 'Xorg.')
369xorg_data.set_quoted('DEFAULT_MODULE_PATH', join_paths(get_option('prefix'), module_dir))
370xorg_data.set_quoted('DEFAULT_LIBRARY_PATH', join_paths(get_option('prefix'), get_option('libdir')))
371xorg_data.set_quoted('__XSERVERNAME__', 'Xorg')
372xorg_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess') ? '1' : false)
373xorg_data.set_quoted('PCI_TXT_IDS_PATH', '')
374xorg_data.set('XSERVER_PLATFORM_BUS', build_udev_kms ? '1' : false)
375xorg_data.set('WSCONS_SUPPORT',
376              host_machine.system() == 'netbsd' or host_machine.system() == 'openbsd' ? '1' : false)
377xorg_data.set('HAVE_STROPTS_H', cc.has_header('stropts.h') ? '1' : false)
378xorg_data.set('HAVE_SYS_KD_H', cc.has_header('sys/kd.h') ? '1' : false)
379xorg_data.set('HAVE_SYS_VT_H', cc.has_header('sys/vt.h') ? '1' : false)
380
381if host_machine.system() == 'freebsd' or host_machine.system() == 'dragonfly'
382    if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
383        xorg_data.set('USE_DEV_IO', '1')
384    endif
385elif host_machine.system() == 'netbsd'
386    if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
387        xorg_data.set('USE_I386_IOPL', '1')
388    endif
389elif host_machine.system() == 'openbsd'
390    if host_machine.cpu_family() == 'x86'
391        xorg_data.set('USE_I386_IOPL', '1')
392    endif
393    if host_machine.cpu_family() == 'x86_64'
394        xorg_data.set('USE_AMD64_IOPL', '1')
395    endif
396endif
397
398configure_file(output : 'xorg-config.h',
399               input : 'xorg-config.h.meson.in',
400               configuration : xorg_data)
401
402xwin_data = configuration_data()
403xwin_data.set_quoted('DEFAULT_LOGDIR', log_dir)
404xwin_data.set('HAS_WINSOCK', host_machine.system() == 'windows' ? '1' : false,
405              description: 'Use Windows sockets')
406xwin_data.set('HAS_DEVWINDOWS', host_machine.system() == 'cygwin' ? '1' : false,
407              description: 'Has /dev/windows for signaling new win32 messages')
408xwin_data.set('RELOCATE_PROJECTROOT', host_machine.system() == 'windows' ? '1' : false,
409              description: 'Make paths relative to the xserver installation location')
410# XXX: these three are all the same as DEBUG so we should just change to that
411xwin_data.set10('CYGDEBUG', enable_debugging)
412xwin_data.set10('CYGWINDOWING_DEBUG',enable_debugging)
413xwin_data.set10('CYGMULTIWINDOW_DEBUG', enable_debugging)
414
415configure_file(output : 'xwin-config.h',
416               input : 'xwin-config.h.meson.in',
417               configuration : xwin_data)
418
419dtrace_hdr = []
420dtrace_tmpl = files('Xserver.d')
421if with_dtrace
422    dtrace_header = generator(dtrace,
423        output: '@BASENAME@-dtrace.h',
424        arguments: ['-h', '-s', '@INPUT@', '-o', '@OUTPUT@']
425    )
426
427    dtrace_hdr += dtrace_header.process(dtrace_tmpl)
428endif
429
430if build_xorg
431    install_data(
432        [
433            'XIstubs.h',
434            'Xprintf.h',
435            'callback.h',
436            'client.h',
437            'closestr.h',
438            'closure.h',
439            'colormap.h',
440            'colormapst.h',
441            'hotplug.h',
442            'cursor.h',
443            'cursorstr.h',
444            'dix.h',
445            'dixaccess.h',
446            'dixevents.h',
447            'dixfont.h',
448            'dixfontstr.h',
449            'dixgrabs.h',
450            'dixstruct.h',
451            'events.h',
452            'exevents.h',
453            'extension.h',
454            'extinit.h',
455            'extnsionst.h',
456            'fourcc.h',
457            'gc.h',
458            'gcstruct.h',
459            'globals.h',
460            'glx_extinit.h',
461            'glxvndabi.h',
462            'input.h',
463            'inputstr.h',
464            'list.h',
465            'misc.h',
466            'miscstruct.h',
467            'opaque.h',
468            'nonsdk_extinit.h',
469            'optionstr.h',
470            'os.h',
471            'pixmap.h',
472            'pixmapstr.h',
473            'privates.h',
474            'property.h',
475            'propertyst.h',
476            'ptrveloc.h',
477            'region.h',
478            'regionstr.h',
479            'registry.h',
480            'resource.h',
481            'rgb.h',
482            'screenint.h',
483            'scrnintstr.h',
484            'selection.h',
485            'servermd.h',
486            'validate.h',
487            'displaymode.h',
488            'window.h',
489            'windowstr.h',
490            'xkbfile.h',
491            'xkbsrv.h',
492            'xkbstr.h',
493            'xkbrules.h',
494            'Xprintf.h',
495            'xserver_poll.h',
496            'xserver-properties.h',
497        ],
498        install_dir: xorgsdkdir,
499    )
500endif
501