meson.build revision a1e1cf94
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_UN_H', cc.has_header('sys/un.h') ? '1' : false)
139conf_data.set('HAVE_SYS_UTSNAME_H', cc.has_header('sys/utsname.h') ? '1' : false)
140conf_data.set('HAVE_SYS_SYSMACROS_H', cc.has_header('sys/sysmacros.h') ? '1' : false)
141conf_data.set('HAVE_UNISTD_H', cc.has_header('unistd.h') ? '1' : false)
142
143conf_data.set('HAVE_ARC4RANDOM_BUF', cc.has_function('arc4random_buf', dependencies: libbsd_dep) ? '1' : false)
144conf_data.set('HAVE_BACKTRACE', cc.has_function('backtrace') ? '1' : false)
145conf_data.set('HAVE_CBRT', cc.has_function('cbrt') ? '1' : false)
146conf_data.set('HAVE_EPOLL_CREATE1', cc.has_function('epoll_create1') ? '1' : false)
147conf_data.set('HAVE_GETUID', cc.has_function('getuid') ? '1' : false)
148conf_data.set('HAVE_GETEUID', cc.has_function('geteuid') ? '1' : false)
149conf_data.set('HAVE_ISASTREAM', cc.has_function('isastream') ? '1' : false)
150conf_data.set('HAVE_ISSETUGID', cc.has_function('issetugid') ? '1' : false)
151conf_data.set('HAVE_GETIFADDRS', cc.has_function('getifaddrs') ? '1' : false)
152conf_data.set('HAVE_GETPEEREID', cc.has_function('getpeereid') ? '1' : false)
153conf_data.set('HAVE_GETPEERUCRED', cc.has_function('getpeerucred') ? '1' : false)
154conf_data.set('HAVE_GETPROGNAME', cc.has_function('getprogname') ? '1' : false)
155conf_data.set('HAVE_GETZONEID', cc.has_function('getzoneid') ? '1' : false)
156conf_data.set('HAVE_MEMFD_CREATE', cc.has_function('memfd_create') ? '1' : false)
157conf_data.set('HAVE_MKOSTEMP', cc.has_function('mkostemp') ? '1' : false)
158conf_data.set('HAVE_MMAP', cc.has_function('mmap') ? '1' : false)
159conf_data.set('HAVE_POLL', cc.has_function('poll') ? '1' : false)
160conf_data.set('HAVE_POLLSET_CREATE', cc.has_function('pollset_create') ? '1' : false)
161conf_data.set('HAVE_POSIX_FALLOCATE', cc.has_function('posix_fallocate') ? '1' : false)
162conf_data.set('HAVE_PORT_CREATE', cc.has_function('port_create') ? '1' : false)
163conf_data.set('HAVE_REALLOCARRAY', cc.has_function('reallocarray', dependencies: libbsd_dep) ? '1' : false)
164conf_data.set('HAVE_SETEUID', cc.has_function('seteuid') ? '1' : false)
165conf_data.set('HAVE_SETITIMER', cc.has_function('setitimer') ? '1' : false)
166conf_data.set('HAVE_SHMCTL64', cc.has_function('shmctl64') ? '1' : false)
167conf_data.set('HAVE_SIGACTION', cc.has_function('sigaction') ? '1' : false)
168conf_data.set('HAVE_SIGPROCMASK', cc.has_function('sigprocmask') ? '1' : false)
169conf_data.set('HAVE_STRCASECMP', cc.has_function('strcasecmp') ? '1' : false)
170conf_data.set('HAVE_STRCASESTR', cc.has_function('strcasestr') ? '1' : false)
171conf_data.set('HAVE_STRLCAT', cc.has_function('strlcat', dependencies: libbsd_dep) ? '1' : false)
172conf_data.set('HAVE_STRLCPY', cc.has_function('strlcpy', dependencies: libbsd_dep) ? '1' : false)
173conf_data.set('HAVE_STRNCASECMP', cc.has_function('strncasecmp') ? '1' : false)
174conf_data.set('HAVE_STRNDUP', cc.has_function('strndup') and cc.has_header_symbol('string.h', 'strndup') ? '1' : false)
175conf_data.set('HAVE_TIMINGSAFE_MEMCMP', cc.has_function('timingsafe_memcmp') ? '1' : false)
176conf_data.set('HAVE_VASPRINTF', cc.has_function('vasprintf') ? '1' : false)
177conf_data.set('HAVE_VSNPRINTF', cc.has_function('vsnprintf') ? '1' : false)
178conf_data.set('HAVE_WALKCONTEXT', cc.has_function('walkcontext') ? '1' : false)
179
180conf_data.set('BUSFAULT', conf_data.get('HAVE_SIGACTION'))
181
182# Don't let X dependencies typedef 'pointer'
183conf_data.set('_XTYPEDEF_POINTER', '1')
184conf_data.set('_XITYPEDEF_POINTER', '1')
185
186conf_data.set('LISTEN_TCP', get_option('listen_tcp'))
187conf_data.set('LISTEN_UNIX', get_option('listen_unix'))
188conf_data.set('LISTEN_LOCAL', get_option('listen_local'))
189
190if cc.has_header_symbol('sys/socket.h', 'SCM_RIGHTS')
191  conf_data.set('XTRANS_SEND_FDS', '1')
192endif
193
194if conf_data.get('HAVE_GETPEEREID').to_int() == 0 and conf_data.get('HAVE_GETPEERUCRED').to_int() == 0
195    if not cc.has_header_symbol('sys/socket.h', 'SO_PEERCRED')
196        conf_data.set('NO_LOCAL_CLIENT_CRED', 1)
197    endif
198endif
199
200conf_data.set('TCPCONN', '1')
201conf_data.set('UNIXCONN', host_machine.system() != 'windows' ? '1' : false)
202conf_data.set('IPv6', build_ipv6 ? '1' : false)
203
204conf_data.set('BIGREQS', '1')
205conf_data.set('COMPOSITE', '1')
206conf_data.set('DAMAGE', '1')
207conf_data.set('DBE', '1')
208conf_data.set('DGA', build_dga ? '1' : false)
209conf_data.set('DPMSExtension', build_dpms ? '1' : false)
210conf_data.set('DRI2', build_dri2 ? '1' : false)
211conf_data.set('DRI3', build_dri3 ? '1' : false)
212if build_glx
213    conf_data.set_quoted('DRI_DRIVER_PATH', dri_dep.get_pkgconfig_variable('dridriverdir'))
214endif
215conf_data.set('HAS_SHM', build_mitshm ? '1' : false)
216conf_data.set('MITSHM', build_mitshm ? '1' : false)
217conf_data.set('PANORAMIX', build_xinerama ? '1' : false)
218conf_data.set('PRESENT', '1')
219conf_data.set('RANDR', '1')
220conf_data.set('RES', build_res ? '1' : false)
221conf_data.set('RENDER', '1')
222conf_data.set('SCREENSAVER', build_screensaver ? '1' : false)
223conf_data.set('SHAPE', '1')
224conf_data.set('XACE', build_xace ? '1' : false)
225conf_data.set('XCMISC', '1')
226conf_data.set('XCSECURITY', build_xsecurity ? '1' : false)
227conf_data.set('XDMCP', xdmcp_dep.found() ? '1' : false)
228conf_data.set('XF86BIGFONT', build_xf86bigfont ? '1' : false)
229conf_data.set('XF86DRI', build_dri1 ? '1' : false)
230conf_data.set('XF86VIDMODE', 1)
231conf_data.set('XFIXES', '1')
232conf_data.set('XFreeXDGA', build_dga ? '1' : false)
233conf_data.set('XINERAMA', build_xinerama ? '1' : false)
234conf_data.set('XINPUT', '1')
235conf_data.set('XRECORD', '1')
236conf_data.set('XSELINUX', build_xselinux ? '1' : false)
237conf_data.set('XSYNC', '1')
238conf_data.set('XTEST', '1')
239conf_data.set('XV', build_xv ? '1' : false)
240conf_data.set('XvExtension', build_xv ? '1' : false)
241conf_data.set('XvMCExtension', build_xvmc ? '1' : false)
242
243conf_data.set('HAVE_SHA1_IN_' + sha1.to_upper(), '1', description: 'Use @0@ SHA1 functions'.format(sha1))
244conf_data.set('HAVE_LIBUNWIND', get_option('libunwind'))
245
246conf_data.set('HAVE_APM', (build_apm or build_acpi) ? '1' : false)
247conf_data.set('HAVE_ACPI', build_acpi ? '1' : false)
248
249conf_data.set('DDXOSVERRORF', build_xwin ? '1' : false)
250conf_data.set('DDXBEFORERESET', build_xwin ? '1' : false)
251enable_debugging = get_option('buildtype') == 'debug'
252conf_data.set('DEBUG', enable_debugging ? '1' : false)
253
254conf_data.set_quoted('XVENDORNAME', get_option('vendor_name'))
255conf_data.set_quoted('XVENDORNAMESHORT', get_option('vendor_name_short'))
256conf_data.set_quoted('__VENDORDWEBSUPPORT__', get_option('vendor_web'))
257conf_data.set_quoted('BUILDERADDR', get_option('builder_addr'))
258conf_data.set_quoted('BUILDERSTRING', get_option('builder_string'))
259
260if build_rootless
261    conf_data.set('ROOTLESS', build_rootless ? '1' : false)
262    conf_data.set('ROOTLESS_WORKAROUND', 1)
263    conf_data.set('ROOTLESS_SAFEALPHA', 1)
264endif
265
266#
267# for xorg-server.h only
268#
269defines_svr4 = '''#if !defined(SVR4) && !defined(__svr4__) && !defined(__SVR4)
270#error "I am not SVR4"
271#endif
272'''
273
274# BSD specifics
275supports_pccons = false
276supports_pcvt = false
277supports_syscons = false
278supports_wscons = false
279csrg_based = false
280
281if host_machine.system() == 'freebsd' or host_machine.system() == 'dragonfly'
282  supports_pccons = true
283  supports_pcvt = true
284  supports_syscons = true
285  csrg_based = true
286endif
287
288if host_machine.system() == 'kfreebsd'
289  supports_pccons = true
290  supports_pcvt = true
291  supports_syscons = true
292endif
293
294if host_machine.system() == 'netbsd'
295  supports_pccons = true
296  supports_pcvt = true
297  supports_wscons = true
298  csrg_based = true
299endif
300
301if host_machine.system() == 'openbsd'
302  supports_pcvt = true
303  supports_wscons = true
304  csrg_based = true
305endif
306
307if host_machine.system() == 'darwin'
308  csrg_based = true
309endif
310
311conf_data.set('SVR4', cc.compiles(defines_svr4) ? '1' : false)
312conf_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
313conf_data.set('XORGSERVER', build_xorg ? '1' : false)
314conf_data.set_quoted('XCONFIGFILE', 'xorg.conf')
315conf_data.set_quoted('__XSERVERNAME__', 'Xorg')
316conf_data.set('WITH_VGAHW', build_vgahw ? '1' : false)
317conf_data.set('CSRG_BASED', csrg_based ? '1' : false)
318conf_data.set('PCCONS_SUPPORT', supports_pccons ? '1' : false)
319conf_data.set('PCVT_SUPPORT', supports_pcvt ? '1' : false)
320conf_data.set('SYSCONS_SUPPORT', supports_syscons ? '1' : false)
321conf_data.set('WSCONS_SUPPORT', supports_wscons ? '1' : false)
322conf_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess') ? '1' : false)
323conf_data.set('XSERVER_PLATFORM_BUS', build_udev_kms ? '1' : false)
324
325configure_file(output : 'dix-config.h',
326               configuration : conf_data)
327
328configure_file(output : 'xorg-server.h',
329               input : 'xorg-server.h.meson.in',
330               configuration : conf_data,
331               install: build_xorg,
332               install_dir: xorgsdkdir)
333
334version_data = configuration_data()
335version_data.set('VENDOR_RELEASE', '@0@'.format(release))
336version_data.set_quoted('VENDOR_NAME', get_option('vendor_name'))
337version_data.set_quoted('VENDOR_NAME_SHORT', get_option('vendor_name_short'))
338version_data.set_quoted('VENDOR_WEB', get_option('vendor_web'))
339version_data.set_quoted('VENDOR_MAN_VERSION', 'Version @0@.@1@.@2@'.format(major, minor, patch))
340configure_file(output : 'version-config.h',
341               configuration : version_data)
342
343xkb_data = configuration_data()
344
345xkb_data.set_quoted('XKB_BIN_DIRECTORY', xkb_bin_dir)
346xkb_data.set_quoted('XKB_BASE_DIRECTORY', xkb_dir)
347xkb_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
348xkb_data.set_quoted('XKB_DFLT_MODEL', get_option('xkb_default_model'))
349xkb_data.set_quoted('XKB_DFLT_LAYOUT', get_option('xkb_default_layout'))
350xkb_data.set_quoted('XKB_DFLT_VARIANT', get_option('xkb_default_variant'))
351xkb_data.set_quoted('XKB_DFLT_OPTIONS', get_option('xkb_default_options'))
352xkb_data.set_quoted('XKM_OUTPUT_DIR', xkb_output_dir + '/')
353
354configure_file(output : 'xkb-config.h',
355               configuration : xkb_data)
356
357xorg_data = configuration_data()
358
359xorg_data.set_quoted('XORG_BIN_DIRECTORY', get_option('bindir'))
360xorg_data.set('XORG_VERSION_CURRENT', release)
361xorg_data.set_quoted('XF86CONFIGFILE', 'xorg.conf')
362xorg_data.set_quoted('XCONFIGFILE', 'xorg.conf')
363xorg_data.set_quoted('XCONFIGDIR', 'xorg.conf.d')
364xorg_data.set_quoted('DEFAULT_XDG_DATA_HOME', '.local/share')
365xorg_data.set_quoted('DEFAULT_XDG_DATA_HOME_LOGDIR', 'xorg')
366xorg_data.set_quoted('DEFAULT_LOGDIR', log_dir)
367xorg_data.set_quoted('DEFAULT_LOGPREFIX', 'Xorg.')
368xorg_data.set_quoted('DEFAULT_MODULE_PATH', join_paths(get_option('prefix'), module_dir))
369xorg_data.set_quoted('DEFAULT_LIBRARY_PATH', join_paths(get_option('prefix'), get_option('libdir')))
370xorg_data.set_quoted('__XSERVERNAME__', 'Xorg')
371xorg_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess') ? '1' : false)
372xorg_data.set_quoted('PCI_TXT_IDS_PATH', '')
373xorg_data.set('XSERVER_PLATFORM_BUS', build_udev_kms ? '1' : false)
374xorg_data.set('WSCONS_SUPPORT',
375              host_machine.system() == 'netbsd' or host_machine.system() == 'openbsd' ? '1' : false)
376xorg_data.set('HAVE_STROPTS_H', cc.has_header('stropts.h') ? '1' : false)
377xorg_data.set('HAVE_SYS_KD_H', cc.has_header('sys/kd.h') ? '1' : false)
378xorg_data.set('HAVE_SYS_VT_H', cc.has_header('sys/vt.h') ? '1' : false)
379
380if host_machine.system() == 'freebsd' or host_machine.system() == 'dragonfly'
381    if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
382        xorg_data.set('USE_DEV_IO', '1')
383    endif
384elif host_machine.system() == 'netbsd'
385    if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
386        xorg_data.set('USE_I386_IOPL', '1')
387    endif
388elif host_machine.system() == 'openbsd'
389    if host_machine.cpu_family() == 'x86'
390        xorg_data.set('USE_I386_IOPL', '1')
391    endif
392    if host_machine.cpu_family() == 'x86_64'
393        xorg_data.set('USE_AMD64_IOPL', '1')
394    endif
395endif
396
397configure_file(output : 'xorg-config.h',
398               input : 'xorg-config.h.meson.in',
399               configuration : xorg_data)
400
401xwin_data = configuration_data()
402xwin_data.set_quoted('DEFAULT_LOGDIR', log_dir)
403xwin_data.set('HAS_WINSOCK', host_machine.system() == 'windows' ? '1' : false,
404              description: 'Use Windows sockets')
405xwin_data.set('HAS_DEVWINDOWS', host_machine.system() == 'cygwin' ? '1' : false,
406              description: 'Has /dev/windows for signaling new win32 messages')
407xwin_data.set('RELOCATE_PROJECTROOT', host_machine.system() == 'windows' ? '1' : false,
408              description: 'Make paths relative to the xserver installation location')
409# XXX: these three are all the same as DEBUG so we should just change to that
410xwin_data.set10('CYGDEBUG', enable_debugging)
411xwin_data.set10('CYGWINDOWING_DEBUG',enable_debugging)
412xwin_data.set10('CYGMULTIWINDOW_DEBUG', enable_debugging)
413
414configure_file(output : 'xwin-config.h',
415               input : 'xwin-config.h.meson.in',
416               configuration : xwin_data)
417
418dtrace_hdr = []
419dtrace_tmpl = files('Xserver.d')
420if with_dtrace
421    dtrace_header = generator(dtrace,
422        output: '@BASENAME@-dtrace.h',
423        arguments: ['-h', '-s', '@INPUT@', '-o', '@OUTPUT@']
424    )
425
426    dtrace_hdr += dtrace_header.process(dtrace_tmpl)
427endif
428
429if build_xorg
430    install_data(
431        [
432            'XIstubs.h',
433            'Xprintf.h',
434            'callback.h',
435            'client.h',
436            'closestr.h',
437            'closure.h',
438            'colormap.h',
439            'colormapst.h',
440            'hotplug.h',
441            'cursor.h',
442            'cursorstr.h',
443            'dix.h',
444            'dixaccess.h',
445            'dixevents.h',
446            'dixfont.h',
447            'dixfontstr.h',
448            'dixgrabs.h',
449            'dixstruct.h',
450            'events.h',
451            'exevents.h',
452            'extension.h',
453            'extinit.h',
454            'extnsionst.h',
455            'fourcc.h',
456            'gc.h',
457            'gcstruct.h',
458            'globals.h',
459            'glx_extinit.h',
460            'glxvndabi.h',
461            'input.h',
462            'inputstr.h',
463            'list.h',
464            'misc.h',
465            'miscstruct.h',
466            'opaque.h',
467            'nonsdk_extinit.h',
468            'optionstr.h',
469            'os.h',
470            'pixmap.h',
471            'pixmapstr.h',
472            'privates.h',
473            'property.h',
474            'propertyst.h',
475            'ptrveloc.h',
476            'region.h',
477            'regionstr.h',
478            'registry.h',
479            'resource.h',
480            'rgb.h',
481            'screenint.h',
482            'scrnintstr.h',
483            'selection.h',
484            'servermd.h',
485            'validate.h',
486            'displaymode.h',
487            'window.h',
488            'windowstr.h',
489            'xkbfile.h',
490            'xkbsrv.h',
491            'xkbstr.h',
492            'xkbrules.h',
493            'Xprintf.h',
494            'xserver_poll.h',
495            'xserver-properties.h',
496        ],
497        install_dir: xorgsdkdir,
498    )
499endif
500