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