meson.build revision 1b5d61b8
11b5d61b8Smrgversion_split = meson.project_version().split('.')
21b5d61b8Smrgmajor = version_split[0].to_int()
31b5d61b8Smrgminor = version_split[1].to_int()
41b5d61b8Smrgpatch = version_split[2].to_int()
51b5d61b8Smrgif version_split.length() == 4
61b5d61b8Smrg    subpatch = version_split[3].to_int()
71b5d61b8Smrgelse
81b5d61b8Smrg    subpatch = 0
91b5d61b8Smrgendif
101b5d61b8Smrg
111b5d61b8Smrgrelease = major * 10000000 + minor * 100000 + patch * 1000 + subpatch
121b5d61b8Smrg
131b5d61b8Smrgdri_dep = dependency('dri', required: build_dri2 or build_dri3)
141b5d61b8Smrg
151b5d61b8Smrgconf_data = configuration_data()
161b5d61b8Smrgconf_data.set('_DIX_CONFIG_H_', '1')
171b5d61b8Smrg
181b5d61b8Smrgconf_data.set('HAVE_TYPEOF', cc.compiles('''
191b5d61b8Smrg    int foo(int bar) { typeof(bar) baz = 1; return baz; }
201b5d61b8Smrg''',
211b5d61b8Smrg    name: 'typeof()'))
221b5d61b8Smrg
231b5d61b8Smrgconf_data.set('MONOTONIC_CLOCK', cc.compiles('''
241b5d61b8Smrg    #define _POSIX_C_SOURCE 200112L
251b5d61b8Smrg    #include <time.h>
261b5d61b8Smrg    #include <unistd.h>
271b5d61b8Smrg    #ifndef CLOCK_MONOTONIC
281b5d61b8Smrg    #error CLOCK_MONOTONIC not defined
291b5d61b8Smrg    #endif
301b5d61b8Smrg''',
311b5d61b8Smrg    name: 'CLOCK_MONOTONIC'))
321b5d61b8Smrg
331b5d61b8Smrg#conf_data.set('XSERVER_DTRACE', '1') # XXX
341b5d61b8Smrg
351b5d61b8Smrgif host_machine.endian() == 'little'
361b5d61b8Smrg    conf_data.set('X_BYTE_ORDER', 'X_LITTLE_ENDIAN')
371b5d61b8Smrgelse
381b5d61b8Smrg    conf_data.set('X_BYTE_ORDER', 'X_BIG_ENDIAN')
391b5d61b8Smrgendif
401b5d61b8Smrg
411b5d61b8Smrgglx_align64 = []
421b5d61b8Smrgif cc.sizeof('unsigned long') == 8
431b5d61b8Smrg   conf_data.set('_XSERVER64', '1')
441b5d61b8Smrg   glx_align64 = '-D__GLX_ALIGN64'
451b5d61b8Smrgendif
461b5d61b8Smrg
471b5d61b8Smrgconf_data.set('_GNU_SOURCE', '1')
481b5d61b8Smrg# XXX: NO_LOCAL_CLIENT_CRED
491b5d61b8Smrg
501b5d61b8Smrg# autoconf checks for /dev/xf86 here, but the test should be based on
511b5d61b8Smrg# the target, not the build system.  Could we get rid of this and just
521b5d61b8Smrg# ifdef for openbsd?
531b5d61b8Smrgconf_data.set('HAS_APERTURE_DRV', host_machine.system() == 'openbsd')
541b5d61b8Smrg
551b5d61b8Smrg# XXX: USE_ALPHA_PIO and other bsd bits
561b5d61b8Smrg# XXX: FALLBACK_INPUT_DRIVER
571b5d61b8Smrg# XXX: BUNDLE_ID_PREFIX
581b5d61b8Smrg# XXX: HAVE_LIBDISPATCH
591b5d61b8Smrgconf_data.set_quoted('OSNAME', 'Linux') # XXX
601b5d61b8Smrgconf_data.set('HAVE_INPUTTHREAD', '1') # XXX
611b5d61b8Smrgconf_data.set('HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID', '1') # XXX
621b5d61b8Smrgconf_data.set('HAVE_LIBBSD', libbsd_dep.found())
631b5d61b8Smrg# XXX: HAVE_SYSTEMD_DAEMON
641b5d61b8Smrg# XXX: HAVE_LIBUDEV
651b5d61b8Smrgconf_data.set('CONFIG_UDEV', build_udev)
661b5d61b8Smrgconf_data.set('CONFIG_UDEV_KMS', build_udev)
671b5d61b8Smrgconf_data.set('HAVE_DBUS', build_dbus)
681b5d61b8Smrgconf_data.set('CONFIG_HAL', build_hal)
691b5d61b8Smrgconf_data.set('SYSTEMD_LOGIND', build_systemd_logind)
701b5d61b8Smrgconf_data.set('NEED_DBUS', build_systemd_logind or build_hal)
711b5d61b8Smrgconf_data.set('CONFIG_WSCONS', host_machine.system() == 'openbsd')
721b5d61b8Smrg
731b5d61b8Smrg# XXX: SHMDIR is weird in autoconf, probing the build system for
741b5d61b8Smrg# various tmp directories.  Could we replace it with C code at runtime
751b5d61b8Smrg# that just uses whatever directory works?
761b5d61b8Smrgconf_data.set_quoted('SHMDIR', '/tmp')
771b5d61b8Smrg
781b5d61b8Smrgconf_data.set('HAVE_XSHMFENCE', xshmfence_dep.found())
791b5d61b8Smrgconf_data.set('WITH_LIBDRM', libdrm_dep.found())
801b5d61b8Smrgconf_data.set('GLAMOR_HAS_EGL_QUERY_DMABUF',
811b5d61b8Smrg              epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.4.4'))
821b5d61b8Smrgconf_data.set('GLXEXT', build_glx)
831b5d61b8Smrgconf_data.set('GLAMOR', build_glamor)
841b5d61b8Smrgconf_data.set('GLAMOR_HAS_GBM', gbm_dep.found())
851b5d61b8Smrgconf_data.set('GLAMOR_HAS_GBM_LINEAR',
861b5d61b8Smrg              build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 10.6'))
871b5d61b8Smrgconf_data.set('GBM_BO_WITH_MODIFIERS',
881b5d61b8Smrg              build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 17.1'))
891b5d61b8Smrg
901b5d61b8Smrgconf_data.set_quoted('SERVER_MISC_CONFIG_PATH', serverconfigdir)
911b5d61b8Smrgconf_data.set_quoted('PROJECTROOT', get_option('prefix'))
921b5d61b8Smrgconf_data.set_quoted('SYSCONFDIR', join_paths(get_option('prefix'), get_option('sysconfdir')))
931b5d61b8Smrgconf_data.set_quoted('SUID_WRAPPER_DIR', join_paths(get_option('prefix'), get_option('libexecdir')))
941b5d61b8Smrgconf_data.set_quoted('COMPILEDDEFAULTFONTPATH', default_font_path)
951b5d61b8Smrg
961b5d61b8Smrgconf_data.set('XORG_VERSION_CURRENT', release)
971b5d61b8Smrg
981b5d61b8Smrgconf_data.set('HASXDMAUTH', has_xdm_auth)
991b5d61b8Smrgconf_data.set('SECURE_RPC', get_option('secure-rpc'))
1001b5d61b8Smrg
1011b5d61b8Smrgconf_data.set('HAVE_DLFCN_H', cc.has_header('dlfcn.h'))
1021b5d61b8Smrgconf_data.set('HAVE_EXECINFO_H', cc.has_header('execinfo.h'))
1031b5d61b8Smrgconf_data.set('HAVE_FCNTL_H', cc.has_header('fcntl.h'))
1041b5d61b8Smrgconf_data.set('HAVE_FNMATCH_H', cc.has_header('fnmatch.h'))
1051b5d61b8Smrgconf_data.set('HAVE_LINUX_AGPGART_H', cc.has_header('linux/agpgart.h'))
1061b5d61b8Smrgconf_data.set('HAVE_STDLIB_H', cc.has_header('stdlib.h'))
1071b5d61b8Smrgconf_data.set('HAVE_STRING_H', cc.has_header('string.h'))
1081b5d61b8Smrgconf_data.set('HAVE_STRINGS_H', cc.has_header('strings.h'))
1091b5d61b8Smrgconf_data.set('HAVE_STROPTS_H', cc.has_header('stropts.h'))
1101b5d61b8Smrgconf_data.set('HAVE_SYS_AGPGART_H', cc.has_header('sys/agpgart.h'))
1111b5d61b8Smrgconf_data.set('HAVE_SYS_AGPIO_H', cc.has_header('sys/agpio.h'))
1121b5d61b8Smrgconf_data.set('HAVE_SYS_UTSNAME_H', cc.has_header('sys/utsname.h'))
1131b5d61b8Smrgconf_data.set('HAVE_SYS_SYSMACROS_H', cc.has_header('sys/sysmacros.h'))
1141b5d61b8Smrgconf_data.set('HAVE_UNISTD_H', cc.has_header('unistd.h'))
1151b5d61b8Smrg
1161b5d61b8Smrgconf_data.set('HAVE_ARC4RANDOM_BUF', cc.has_function('arc4random_buf', dependencies: libbsd_dep))
1171b5d61b8Smrgconf_data.set('HAVE_BACKTRACE', cc.has_function('backtrace'))
1181b5d61b8Smrgconf_data.set('HAVE_CBRT', cc.has_function('cbrt'))
1191b5d61b8Smrgconf_data.set('HAVE_EPOLL_CREATE1', cc.has_function('epoll_create1'))
1201b5d61b8Smrgconf_data.set('HAVE_GETUID', cc.has_function('getuid'))
1211b5d61b8Smrgconf_data.set('HAVE_GETEUID', cc.has_function('geteuid'))
1221b5d61b8Smrgconf_data.set('HAVE_ISSETUGID', cc.has_function('issetugid'))
1231b5d61b8Smrgconf_data.set('HAVE_GETIFADDRS', cc.has_function('getifaddrs'))
1241b5d61b8Smrgconf_data.set('HAVE_GETPEEREID', cc.has_function('getpeereid'))
1251b5d61b8Smrgconf_data.set('HAVE_GETPEERUCRED', cc.has_function('getpeerucred'))
1261b5d61b8Smrgconf_data.set('HAVE_GETPROGNAME', cc.has_function('getprogname'))
1271b5d61b8Smrgconf_data.set('HAVE_GETZONEID', cc.has_function('getzoneid'))
1281b5d61b8Smrgconf_data.set('HAVE_MKOSTEMP', cc.has_function('mkostemp'))
1291b5d61b8Smrgconf_data.set('HAVE_MMAP', cc.has_function('mmap'))
1301b5d61b8Smrgconf_data.set('HAVE_POLL', cc.has_function('poll'))
1311b5d61b8Smrgconf_data.set('HAVE_POLLSET_CREATE', cc.has_function('pollset_create'))
1321b5d61b8Smrgconf_data.set('HAVE_POSIX_FALLOCATE', cc.has_function('posix_fallocate'))
1331b5d61b8Smrgconf_data.set('HAVE_PORT_CREATE', cc.has_function('port_create'))
1341b5d61b8Smrgconf_data.set('HAVE_REALLOCARRAY', cc.has_function('reallocarray', dependencies: libbsd_dep))
1351b5d61b8Smrgconf_data.set('HAVE_SETEUID', cc.has_function('seteuid'))
1361b5d61b8Smrgconf_data.set('HAVE_SETITIMER', cc.has_function('setitimer'))
1371b5d61b8Smrgconf_data.set('HAVE_SHMCTL64', cc.has_function('shmctl64'))
1381b5d61b8Smrgconf_data.set('HAVE_SIGACTION', cc.has_function('sigaction'))
1391b5d61b8Smrgconf_data.set('HAVE_STRCASECMP', cc.has_function('strcasecmp'))
1401b5d61b8Smrgconf_data.set('HAVE_STRCASESTR', cc.has_function('strcasestr'))
1411b5d61b8Smrgconf_data.set('HAVE_STRLCAT', cc.has_function('strlcat', dependencies: libbsd_dep))
1421b5d61b8Smrgconf_data.set('HAVE_STRLCPY', cc.has_function('strlcpy', dependencies: libbsd_dep))
1431b5d61b8Smrgconf_data.set('HAVE_STRNCASECMP', cc.has_function('strncasecmp'))
1441b5d61b8Smrgconf_data.set('HAVE_STRNDUP', cc.has_function('strndup'))
1451b5d61b8Smrgconf_data.set('HAVE_TIMINGSAFE_MEMCMP', cc.has_function('timingsafe_memcmp'))
1461b5d61b8Smrgconf_data.set('HAVE_VASPRINTF', cc.has_function('vasprintf'))
1471b5d61b8Smrgconf_data.set('HAVE_VSNPRINTF', cc.has_function('vsnprintf'))
1481b5d61b8Smrgconf_data.set('HAVE_WALKCONTEXT', cc.has_function('walkcontext'))
1491b5d61b8Smrg
1501b5d61b8Smrgconf_data.set('BUSFAULT', conf_data.get('HAVE_SIGACTION'))
1511b5d61b8Smrg
1521b5d61b8Smrg# Don't let X dependencies typedef 'pointer'
1531b5d61b8Smrgconf_data.set('_XTYPEDEF_POINTER', '1')
1541b5d61b8Smrgconf_data.set('_XITYPEDEF_POINTER', '1')
1551b5d61b8Smrg
1561b5d61b8Smrgconf_data.set('LISTEN_TCP', get_option('listen_tcp'))
1571b5d61b8Smrgconf_data.set('LISTEN_UNIX', get_option('listen_unix'))
1581b5d61b8Smrgconf_data.set('LISTEN_LOCAL', get_option('listen_local'))
1591b5d61b8Smrg# XXX: Configurable?
1601b5d61b8Smrgconf_data.set('XTRANS_SEND_FDS', '1')
1611b5d61b8Smrg
1621b5d61b8Smrgconf_data.set('TCPCONN', '1')
1631b5d61b8Smrgconf_data.set('UNIXCONN', '1')
1641b5d61b8Smrgconf_data.set('IPv6', build_ipv6)
1651b5d61b8Smrg
1661b5d61b8Smrgconf_data.set('CLIENTIDS', '1') # XXX
1671b5d61b8Smrg
1681b5d61b8Smrgconf_data.set('BIGREQS', '1')
1691b5d61b8Smrgconf_data.set('COMPOSITE', '1')
1701b5d61b8Smrgconf_data.set('DAMAGE', '1')
1711b5d61b8Smrgconf_data.set('DBE', '1')
1721b5d61b8Smrgconf_data.set('DGA', build_dga)
1731b5d61b8Smrgconf_data.set('DPMSExtension', build_dpms)
1741b5d61b8Smrgconf_data.set('DRI2', build_dri2)
1751b5d61b8Smrgconf_data.set('DRI3', build_dri3)
1761b5d61b8Smrgconf_data.set_quoted('DRI_DRIVER_PATH', dri_dep.get_pkgconfig_variable('dridriverdir'))
1771b5d61b8Smrgconf_data.set('HAS_SHM', build_mitshm)
1781b5d61b8Smrgconf_data.set('MITSHM', build_mitshm)
1791b5d61b8Smrgconf_data.set('PANORAMIX', build_xinerama)
1801b5d61b8Smrgconf_data.set('PRESENT', '1')
1811b5d61b8Smrgconf_data.set('RANDR', '1')
1821b5d61b8Smrgconf_data.set('RES', build_res)
1831b5d61b8Smrgconf_data.set('RENDER', '1')
1841b5d61b8Smrgconf_data.set('SCREENSAVER', build_screensaver)
1851b5d61b8Smrgconf_data.set('SHAPE', '1')
1861b5d61b8Smrgconf_data.set('XACE', build_xace)
1871b5d61b8Smrgconf_data.set('XCMISC', '1')
1881b5d61b8Smrgconf_data.set('XCSECURITY', build_xsecurity)
1891b5d61b8Smrgconf_data.set('XDMCP', xdmcp_dep.found())
1901b5d61b8Smrgconf_data.set('XF86BIGFONT', build_xf86bigfont)
1911b5d61b8Smrgconf_data.set('XF86DRI', build_dri1)
1921b5d61b8Smrgconf_data.set('XF86VIDMODE', build_xf86vidmode)
1931b5d61b8Smrgconf_data.set('XFIXES', '1')
1941b5d61b8Smrgconf_data.set('XFreeXDGA', build_dga)
1951b5d61b8Smrgconf_data.set('XINERAMA', build_xinerama)
1961b5d61b8Smrgconf_data.set('XINPUT', '1')
1971b5d61b8Smrgconf_data.set('XRECORD', '1')
1981b5d61b8Smrgconf_data.set('XSELINUX', build_xselinux)
1991b5d61b8Smrgconf_data.set('XSYNC', '1')
2001b5d61b8Smrgconf_data.set('XTEST', '1')
2011b5d61b8Smrgconf_data.set('XV', build_xv)
2021b5d61b8Smrgconf_data.set('XvExtension', build_xv)
2031b5d61b8Smrgconf_data.set('XvMCExtension', build_xvmc)
2041b5d61b8Smrg
2051b5d61b8Smrgconf_data.set('HAVE_SHA1_IN_LIBNETTLE', '1') # XXX
2061b5d61b8Smrg
2071b5d61b8Smrgconf_data.set('HAVE_APM', build_apm or build_acpi)
2081b5d61b8Smrgconf_data.set('HAVE_ACPI', build_acpi)
2091b5d61b8Smrg
2101b5d61b8Smrgenable_debugging = get_option('buildtype') == 'debug'
2111b5d61b8Smrgconf_data.set('DEBUG', enable_debugging)
2121b5d61b8Smrg
2131b5d61b8Smrgconf_data.set_quoted('XVENDORNAME', get_option('vendor_name'))
2141b5d61b8Smrgconf_data.set_quoted('XVENDORNAMESHORT', get_option('vendor_name_short'))
2151b5d61b8Smrgconf_data.set_quoted('__VENDORDWEBSUPPORT__', get_option('vendor_web'))
2161b5d61b8Smrgconf_data.set_quoted('OSVENDOR', get_option('os_vendor'))
2171b5d61b8Smrgconf_data.set_quoted('BUILDERADDR', get_option('builder_addr'))
2181b5d61b8Smrgconf_data.set_quoted('BUILDERSTRING', get_option('builder_string'))
2191b5d61b8Smrg
2201b5d61b8Smrg#
2211b5d61b8Smrg# for xorg-server.h only
2221b5d61b8Smrg#
2231b5d61b8Smrgdefines_svr4 = '''#if !defined(SVR4) && !defined(__svr4__) && !defined(__SVR4)
2241b5d61b8Smrg#error "I am not SVR4"
2251b5d61b8Smrg#endif
2261b5d61b8Smrg'''
2271b5d61b8Smrg
2281b5d61b8Smrg# BSD specifics
2291b5d61b8Smrgsupports_pccons = false
2301b5d61b8Smrgsupports_pcvt = false
2311b5d61b8Smrgsupports_syscons = false
2321b5d61b8Smrgsupports_wscons = false
2331b5d61b8Smrgcsrg_based = false
2341b5d61b8Smrg
2351b5d61b8Smrgif host_machine.system() == 'freebsd' or host_machine.system() == 'dragonflybsd'
2361b5d61b8Smrg  supports_pccons = true
2371b5d61b8Smrg  supports_pcvt = true
2381b5d61b8Smrg  supports_syscons = true
2391b5d61b8Smrg  csrg_based = true
2401b5d61b8Smrgendif
2411b5d61b8Smrg
2421b5d61b8Smrgif host_machine.system() == 'kfreebsd'
2431b5d61b8Smrg  supports_pccons = true
2441b5d61b8Smrg  supports_pcvt = true
2451b5d61b8Smrg  supports_syscons = true
2461b5d61b8Smrgendif
2471b5d61b8Smrg
2481b5d61b8Smrgif host_machine.system() == 'netbsd'
2491b5d61b8Smrg  supports_pccons = true
2501b5d61b8Smrg  supports_pcvt = true
2511b5d61b8Smrg  supports_wscons = true
2521b5d61b8Smrg  csrg_based = true
2531b5d61b8Smrgendif
2541b5d61b8Smrg
2551b5d61b8Smrgif host_machine.system() == 'openbsd'
2561b5d61b8Smrg  supports_pcvt = true
2571b5d61b8Smrg  supports_wscons = true
2581b5d61b8Smrg  csrg_based = true
2591b5d61b8Smrgendif
2601b5d61b8Smrg
2611b5d61b8Smrgconf_data.set('SVR4', cc.compiles(defines_svr4))
2621b5d61b8Smrgconf_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
2631b5d61b8Smrgconf_data.set('XORGSERVER', build_xorg)
2641b5d61b8Smrgconf_data.set_quoted('XCONFIGFILE', 'xorg.conf')
2651b5d61b8Smrgconf_data.set_quoted('__XSERVERNAME__', 'Xorg')
2661b5d61b8Smrgconf_data.set('WITH_VGAHW', build_vgahw)
2671b5d61b8Smrgconf_data.set('CSRG_BASED', csrg_based)
2681b5d61b8Smrgconf_data.set('PCCONS_SUPPORT', supports_pccons)
2691b5d61b8Smrgconf_data.set('PCVT_SUPPORT', supports_pcvt)
2701b5d61b8Smrgconf_data.set('SYSCONS_SUPPORT', supports_syscons)
2711b5d61b8Smrgconf_data.set('WSCONS_SUPPORT', supports_wscons)
2721b5d61b8Smrgconf_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess'))
2731b5d61b8Smrgconf_data.set('XSERVER_PLATFORM_BUS', build_udev)
2741b5d61b8Smrg
2751b5d61b8Smrgconfigure_file(output : 'dix-config.h',
2761b5d61b8Smrg               configuration : conf_data)
2771b5d61b8Smrg
2781b5d61b8Smrgconfigure_file(output : 'xorg-server.h',
2791b5d61b8Smrg               input : 'xorg-server.h.meson.in',
2801b5d61b8Smrg               configuration : conf_data,
2811b5d61b8Smrg               install_dir: xorgsdkdir)
2821b5d61b8Smrg
2831b5d61b8Smrgversion_data = configuration_data()
2841b5d61b8Smrgversion_data.set('VENDOR_RELEASE', '@0@'.format(release))
2851b5d61b8Smrgversion_data.set_quoted('VENDOR_NAME', get_option('vendor_name'))
2861b5d61b8Smrgversion_data.set_quoted('VENDOR_NAME_SHORT', get_option('vendor_name_short'))
2871b5d61b8Smrgversion_data.set_quoted('VENDOR_WEB', get_option('vendor_web'))
2881b5d61b8Smrgversion_data.set_quoted('VENDOR_MAN_VERSION', 'Version @0@.@1@.@2@'.format(major, minor, patch))
2891b5d61b8Smrgconfigure_file(output : 'version-config.h',
2901b5d61b8Smrg               configuration : version_data)
2911b5d61b8Smrg
2921b5d61b8Smrgxkb_data = configuration_data()
2931b5d61b8Smrg
2941b5d61b8Smrgxkb_data.set_quoted('XKB_BIN_DIRECTORY', xkb_bin_dir)
2951b5d61b8Smrgxkb_data.set_quoted('XKB_BASE_DIRECTORY', xkb_dir)
2961b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
2971b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_MODEL', get_option('xkb_default_model'))
2981b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_LAYOUT', get_option('xkb_default_layout'))
2991b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_VARIANT', get_option('xkb_default_variant'))
3001b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_OPTIONS', get_option('xkb_default_options'))
3011b5d61b8Smrgxkb_data.set_quoted('XKM_OUTPUT_DIR', xkb_output_dir)
3021b5d61b8Smrg
3031b5d61b8Smrgconfigure_file(output : 'xkb-config.h',
3041b5d61b8Smrg               configuration : xkb_data)
3051b5d61b8Smrg
3061b5d61b8Smrgxorg_data = configuration_data()
3071b5d61b8Smrg
3081b5d61b8Smrgxorg_data.set_quoted('XORG_BIN_DIRECTORY', get_option('bindir'))
3091b5d61b8Smrgxorg_data.set('XORG_VERSION_CURRENT', release)
3101b5d61b8Smrgxorg_data.set_quoted('XF86CONFIGFILE', 'xorg.conf')
3111b5d61b8Smrgxorg_data.set_quoted('XCONFIGFILE', 'xorg.conf')
3121b5d61b8Smrgxorg_data.set_quoted('XCONFIGDIR', 'xorg.conf.d')
3131b5d61b8Smrgxorg_data.set_quoted('DEFAULT_XDG_DATA_HOME', '.local/share')
3141b5d61b8Smrgxorg_data.set_quoted('DEFAULT_XDG_DATA_HOME_LOGDIR', 'xorg')
3151b5d61b8Smrgxorg_data.set_quoted('DEFAULT_LOGDIR', log_dir)
3161b5d61b8Smrgxorg_data.set_quoted('DEFAULT_LOGPREFIX', 'Xorg.')
3171b5d61b8Smrgxorg_data.set_quoted('FALLBACK_INPUT_DRIVER', 'libinput')
3181b5d61b8Smrgxorg_data.set_quoted('DEFAULT_MODULE_PATH', join_paths(get_option('prefix'), module_dir))
3191b5d61b8Smrgxorg_data.set_quoted('DEFAULT_LIBRARY_PATH', join_paths(get_option('prefix'), get_option('libdir')))
3201b5d61b8Smrgxorg_data.set_quoted('__XSERVERNAME__', 'Xorg')
3211b5d61b8Smrgxorg_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess'))
3221b5d61b8Smrgxorg_data.set_quoted('PCI_TXT_IDS_PATH', '')
3231b5d61b8Smrgxorg_data.set('XSERVER_PLATFORM_BUS', build_udev)
3241b5d61b8Smrgxorg_data.set('WSCONS_SUPPORT', host_machine.system() == 'netbsd' or host_machine.system() == 'openbsd')
3251b5d61b8Smrgxorg_data.set('XF86PM', build_apm or build_acpi)
3261b5d61b8Smrg
3271b5d61b8Smrgif host_machine.system() == 'freebsd' or host_machine.system() == 'dragonflybsd'
3281b5d61b8Smrg    if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
3291b5d61b8Smrg        xorg_data.set('USE_DEV_IO', true)
3301b5d61b8Smrg    endif
3311b5d61b8Smrg    # XXX: Add link to libio on alpha
3321b5d61b8Smrgelif host_machine.system() == 'netbsd'
3331b5d61b8Smrg    # XXX: USE_ALPHA_PIO
3341b5d61b8Smrg    # XXX: Add link to libi386
3351b5d61b8Smrg    if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
3361b5d61b8Smrg        xorg_data.set('USE_I386_IOPL', true)
3371b5d61b8Smrg    endif
3381b5d61b8Smrgelif host_machine.system() == 'openbsd'
3391b5d61b8Smrg    # XXX: Add link to libi386, libamd64
3401b5d61b8Smrg    if host_machine.cpu_family() == 'x86'
3411b5d61b8Smrg        xorg_data.set('USE_I386_IOPL', true)
3421b5d61b8Smrg    endif
3431b5d61b8Smrg    if host_machine.cpu_family() == 'x86_64'
3441b5d61b8Smrg        xorg_data.set('USE_AMD64_IOPL', true)
3451b5d61b8Smrg    endif
3461b5d61b8Smrgendif
3471b5d61b8Smrg
3481b5d61b8Smrgconfigure_file(output : 'xorg-config.h',
3491b5d61b8Smrg               input : 'xorg-config.h.meson.in',
3501b5d61b8Smrg               configuration : xorg_data)
3511b5d61b8Smrg
3521b5d61b8Smrgxwin_data = configuration_data()
3531b5d61b8Smrgxwin_data.set_quoted('DEFAULT_LOGDIR', log_dir)
3541b5d61b8Smrgxwin_data.set('HAS_WINSOCK', host_machine.system() == 'windows', description: 'Use Windows sockets')
3551b5d61b8Smrgxwin_data.set('HAS_DEVWINDOWS', host_machine.system() == 'cygwin', description: 'Has /dev/windows for signaling new win32 messages')
3561b5d61b8Smrgxwin_data.set('RELOCATE_PROJECTROOT', host_machine.system() == 'windows', description: 'Make paths relative to the xserver installation location')
3571b5d61b8Smrg# XXX: these three are all the same as DEBUG so we should just change to that
3581b5d61b8Smrgxwin_data.set10('CYGDEBUG', enable_debugging)
3591b5d61b8Smrgxwin_data.set10('CYGWINDOWING_DEBUG',enable_debugging)
3601b5d61b8Smrgxwin_data.set10('CYGMULTIWINDOW_DEBUG', enable_debugging)
3611b5d61b8Smrg
3621b5d61b8Smrgconfigure_file(output : 'xwin-config.h',
3631b5d61b8Smrg               input : 'xwin-config.h.meson.in',
3641b5d61b8Smrg               configuration : xwin_data)
3651b5d61b8Smrg
3661b5d61b8Smrgxwayland_data = configuration_data()
3671b5d61b8Smrgxwayland_data.set('XWL_HAS_GLAMOR', build_glamor and (gbm_dep.found() or build_eglstream))
3681b5d61b8Smrgxwayland_data.set('XWL_HAS_EGLSTREAM', build_eglstream)
3691b5d61b8Smrg
3701b5d61b8Smrgconfigure_file(output : 'xwayland-config.h',
3711b5d61b8Smrg               input : 'xwayland-config.h.meson.in',
3721b5d61b8Smrg               configuration : xwayland_data)
3731b5d61b8Smrg
3741b5d61b8Smrgif build_xorg
3751b5d61b8Smrg    install_data(
3761b5d61b8Smrg        [
3771b5d61b8Smrg            'XIstubs.h',
3781b5d61b8Smrg            'Xprintf.h',
3791b5d61b8Smrg            'callback.h',
3801b5d61b8Smrg            'client.h',
3811b5d61b8Smrg            'closestr.h',
3821b5d61b8Smrg            'closure.h',
3831b5d61b8Smrg            'colormap.h',
3841b5d61b8Smrg            'colormapst.h',
3851b5d61b8Smrg            'hotplug.h',
3861b5d61b8Smrg            'cursor.h',
3871b5d61b8Smrg            'cursorstr.h',
3881b5d61b8Smrg            'dix.h',
3891b5d61b8Smrg            'dixaccess.h',
3901b5d61b8Smrg            'dixevents.h',
3911b5d61b8Smrg            'dixfont.h',
3921b5d61b8Smrg            'dixfontstr.h',
3931b5d61b8Smrg            'dixgrabs.h',
3941b5d61b8Smrg            'dixstruct.h',
3951b5d61b8Smrg            'events.h',
3961b5d61b8Smrg            'exevents.h',
3971b5d61b8Smrg            'extension.h',
3981b5d61b8Smrg            'extinit.h',
3991b5d61b8Smrg            'extnsionst.h',
4001b5d61b8Smrg            'gc.h',
4011b5d61b8Smrg            'gcstruct.h',
4021b5d61b8Smrg            'globals.h',
4031b5d61b8Smrg            'glx_extinit.h',
4041b5d61b8Smrg            'glxvndabi.h',
4051b5d61b8Smrg            'input.h',
4061b5d61b8Smrg            'inputstr.h',
4071b5d61b8Smrg            'list.h',
4081b5d61b8Smrg            'misc.h',
4091b5d61b8Smrg            'miscstruct.h',
4101b5d61b8Smrg            'opaque.h',
4111b5d61b8Smrg            'nonsdk_extinit.h',
4121b5d61b8Smrg            'optionstr.h',
4131b5d61b8Smrg            'os.h',
4141b5d61b8Smrg            'pixmap.h',
4151b5d61b8Smrg            'pixmapstr.h',
4161b5d61b8Smrg            'privates.h',
4171b5d61b8Smrg            'property.h',
4181b5d61b8Smrg            'propertyst.h',
4191b5d61b8Smrg            'ptrveloc.h',
4201b5d61b8Smrg            'region.h',
4211b5d61b8Smrg            'regionstr.h',
4221b5d61b8Smrg            'registry.h',
4231b5d61b8Smrg            'resource.h',
4241b5d61b8Smrg            'rgb.h',
4251b5d61b8Smrg            'screenint.h',
4261b5d61b8Smrg            'scrnintstr.h',
4271b5d61b8Smrg            'selection.h',
4281b5d61b8Smrg            'servermd.h',
4291b5d61b8Smrg            'site.h',
4301b5d61b8Smrg            'validate.h',
4311b5d61b8Smrg            'displaymode.h',
4321b5d61b8Smrg            'window.h',
4331b5d61b8Smrg            'windowstr.h',
4341b5d61b8Smrg            'xkbfile.h',
4351b5d61b8Smrg            'xkbsrv.h',
4361b5d61b8Smrg            'xkbstr.h',
4371b5d61b8Smrg            'xkbrules.h',
4381b5d61b8Smrg            'Xprintf.h',
4391b5d61b8Smrg            'xserver_poll.h',
4401b5d61b8Smrg            'xserver-properties.h',
4411b5d61b8Smrg        ],
4421b5d61b8Smrg        install_dir: xorgsdkdir,
4431b5d61b8Smrg    )
4441b5d61b8Smrgendif
445