xref: /OK3568_Linux_fs/external/xserver/include/meson.build (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunversion_split = meson.project_version().split('.')
2*4882a593Smuzhiyunmajor = version_split[0].to_int()
3*4882a593Smuzhiyunminor = version_split[1].to_int()
4*4882a593Smuzhiyunpatch = version_split[2].to_int()
5*4882a593Smuzhiyunif version_split.length() == 4
6*4882a593Smuzhiyun    subpatch = version_split[3].to_int()
7*4882a593Smuzhiyunelse
8*4882a593Smuzhiyun    subpatch = 0
9*4882a593Smuzhiyunendif
10*4882a593Smuzhiyun
11*4882a593Smuzhiyunrelease = major * 10000000 + minor * 100000 + patch * 1000 + subpatch
12*4882a593Smuzhiyun
13*4882a593Smuzhiyundri_dep = dependency('dri', required: build_dri2 or build_dri3)
14*4882a593Smuzhiyun
15*4882a593Smuzhiyunconf_data = configuration_data()
16*4882a593Smuzhiyunconf_data.set('_DIX_CONFIG_H_', '1')
17*4882a593Smuzhiyun
18*4882a593Smuzhiyunconf_data.set('HAVE_TYPEOF', cc.compiles('''
19*4882a593Smuzhiyun    int foo(int bar) { typeof(bar) baz = 1; return baz; }
20*4882a593Smuzhiyun''',
21*4882a593Smuzhiyun    name: 'typeof()'))
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunconf_data.set('MONOTONIC_CLOCK', cc.compiles('''
24*4882a593Smuzhiyun    #define _POSIX_C_SOURCE 200112L
25*4882a593Smuzhiyun    #include <time.h>
26*4882a593Smuzhiyun    #include <unistd.h>
27*4882a593Smuzhiyun    #ifndef CLOCK_MONOTONIC
28*4882a593Smuzhiyun    #error CLOCK_MONOTONIC not defined
29*4882a593Smuzhiyun    #endif
30*4882a593Smuzhiyun''',
31*4882a593Smuzhiyun    name: 'CLOCK_MONOTONIC'))
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun#conf_data.set('XSERVER_DTRACE', '1') # XXX
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunif host_machine.endian() == 'little'
36*4882a593Smuzhiyun    conf_data.set('X_BYTE_ORDER', 'X_LITTLE_ENDIAN')
37*4882a593Smuzhiyunelse
38*4882a593Smuzhiyun    conf_data.set('X_BYTE_ORDER', 'X_BIG_ENDIAN')
39*4882a593Smuzhiyunendif
40*4882a593Smuzhiyun
41*4882a593Smuzhiyunglx_align64 = []
42*4882a593Smuzhiyunif cc.sizeof('unsigned long') == 8
43*4882a593Smuzhiyun   conf_data.set('_XSERVER64', '1')
44*4882a593Smuzhiyun   glx_align64 = '-D__GLX_ALIGN64'
45*4882a593Smuzhiyunendif
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunconf_data.set('_GNU_SOURCE', '1')
48*4882a593Smuzhiyun# XXX: NO_LOCAL_CLIENT_CRED
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun# autoconf checks for /dev/xf86 here, but the test should be based on
51*4882a593Smuzhiyun# the target, not the build system.  Could we get rid of this and just
52*4882a593Smuzhiyun# ifdef for openbsd?
53*4882a593Smuzhiyunconf_data.set('HAS_APERTURE_DRV', host_machine.system() == 'openbsd')
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun# XXX: USE_ALPHA_PIO and other bsd bits
56*4882a593Smuzhiyun# XXX: FALLBACK_INPUT_DRIVER
57*4882a593Smuzhiyun# XXX: BUNDLE_ID_PREFIX
58*4882a593Smuzhiyun# XXX: HAVE_LIBDISPATCH
59*4882a593Smuzhiyunconf_data.set_quoted('OSNAME', 'Linux') # XXX
60*4882a593Smuzhiyunconf_data.set('HAVE_INPUTTHREAD', '1') # XXX
61*4882a593Smuzhiyunconf_data.set('HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID', '1') # XXX
62*4882a593Smuzhiyunconf_data.set('HAVE_LIBBSD', libbsd_dep.found())
63*4882a593Smuzhiyun# XXX: HAVE_SYSTEMD_DAEMON
64*4882a593Smuzhiyun# XXX: HAVE_LIBUDEV
65*4882a593Smuzhiyunconf_data.set('CONFIG_UDEV', build_udev)
66*4882a593Smuzhiyunconf_data.set('CONFIG_UDEV_KMS', build_udev)
67*4882a593Smuzhiyunconf_data.set('HAVE_DBUS', build_dbus)
68*4882a593Smuzhiyunconf_data.set('CONFIG_HAL', build_hal)
69*4882a593Smuzhiyunconf_data.set('SYSTEMD_LOGIND', build_systemd_logind)
70*4882a593Smuzhiyunconf_data.set('NEED_DBUS', build_systemd_logind or build_hal)
71*4882a593Smuzhiyunconf_data.set('CONFIG_WSCONS', host_machine.system() == 'openbsd')
72*4882a593Smuzhiyun
73*4882a593Smuzhiyunconf_data.set('HAVE_XSHMFENCE', xshmfence_dep.found())
74*4882a593Smuzhiyunconf_data.set('WITH_LIBDRM', libdrm_dep.found())
75*4882a593Smuzhiyunconf_data.set('GLAMOR_HAS_EGL_QUERY_DMABUF',
76*4882a593Smuzhiyun              epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.4.4'))
77*4882a593Smuzhiyunconf_data.set('GLAMOR_HAS_EGL_QUERY_DRIVER',
78*4882a593Smuzhiyun              epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.5.4'))
79*4882a593Smuzhiyunconf_data.set('GLXEXT', build_glx)
80*4882a593Smuzhiyunconf_data.set('GLAMOR', build_glamor)
81*4882a593Smuzhiyunconf_data.set('GLAMOR_HAS_GBM', gbm_dep.found())
82*4882a593Smuzhiyunconf_data.set('GLAMOR_HAS_GBM_LINEAR',
83*4882a593Smuzhiyun              build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 10.6'))
84*4882a593Smuzhiyunconf_data.set('GBM_BO_WITH_MODIFIERS',
85*4882a593Smuzhiyun              build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 17.1'))
86*4882a593Smuzhiyunconf_data.set('GLAMOR_HAS_GBM_MAP',
87*4882a593Smuzhiyun              build_glamor and cc.has_function('gbm_bo_map', dependencies : gbm_dep) ? '1' : false)
88*4882a593Smuzhiyunconf_data.set('GLAMOR_HAS_GL_FENCE',
89*4882a593Smuzhiyun              build_glamor and cc.has_function('glFenceSync', dependencies : dependency('glesv2', required : false)) ? '1' : false)
90*4882a593Smuzhiyun
91*4882a593Smuzhiyunconf_data.set('GLES_USE_HIGHP', get_option('gles-highp') ? '1' : false)
92*4882a593Smuzhiyun
93*4882a593Smuzhiyunconf_data.set('MODESETTING_WITH_RGA', build_modesetting and rga_dep.found() ? '1' : false)
94*4882a593Smuzhiyun
95*4882a593Smuzhiyunconf_data.set_quoted('SERVER_MISC_CONFIG_PATH', serverconfigdir)
96*4882a593Smuzhiyunconf_data.set_quoted('PROJECTROOT', get_option('prefix'))
97*4882a593Smuzhiyunconf_data.set_quoted('SYSCONFDIR', join_paths(get_option('prefix'), get_option('sysconfdir')))
98*4882a593Smuzhiyunconf_data.set_quoted('SUID_WRAPPER_DIR', join_paths(get_option('prefix'), get_option('libexecdir')))
99*4882a593Smuzhiyunconf_data.set_quoted('COMPILEDDEFAULTFONTPATH', default_font_path)
100*4882a593Smuzhiyun
101*4882a593Smuzhiyunconf_data.set('XORG_VERSION_CURRENT', release)
102*4882a593Smuzhiyun
103*4882a593Smuzhiyunconf_data.set('HASXDMAUTH', has_xdm_auth)
104*4882a593Smuzhiyunconf_data.set('SECURE_RPC', get_option('secure-rpc'))
105*4882a593Smuzhiyun
106*4882a593Smuzhiyunconf_data.set('HAVE_DLFCN_H', cc.has_header('dlfcn.h'))
107*4882a593Smuzhiyunconf_data.set('HAVE_EXECINFO_H', cc.has_header('execinfo.h'))
108*4882a593Smuzhiyunconf_data.set('HAVE_FCNTL_H', cc.has_header('fcntl.h'))
109*4882a593Smuzhiyunconf_data.set('HAVE_FNMATCH_H', cc.has_header('fnmatch.h'))
110*4882a593Smuzhiyunconf_data.set('HAVE_LINUX_AGPGART_H', cc.has_header('linux/agpgart.h'))
111*4882a593Smuzhiyunconf_data.set('HAVE_STDLIB_H', cc.has_header('stdlib.h'))
112*4882a593Smuzhiyunconf_data.set('HAVE_STRING_H', cc.has_header('string.h'))
113*4882a593Smuzhiyunconf_data.set('HAVE_STRINGS_H', cc.has_header('strings.h'))
114*4882a593Smuzhiyunconf_data.set('HAVE_STROPTS_H', cc.has_header('stropts.h'))
115*4882a593Smuzhiyunconf_data.set('HAVE_SYS_AGPGART_H', cc.has_header('sys/agpgart.h'))
116*4882a593Smuzhiyunconf_data.set('HAVE_SYS_AGPIO_H', cc.has_header('sys/agpio.h'))
117*4882a593Smuzhiyunconf_data.set('HAVE_SYS_UTSNAME_H', cc.has_header('sys/utsname.h'))
118*4882a593Smuzhiyunconf_data.set('HAVE_SYS_SYSMACROS_H', cc.has_header('sys/sysmacros.h'))
119*4882a593Smuzhiyunconf_data.set('HAVE_UNISTD_H', cc.has_header('unistd.h'))
120*4882a593Smuzhiyun
121*4882a593Smuzhiyunconf_data.set('HAVE_ARC4RANDOM_BUF', cc.has_function('arc4random_buf', dependencies: libbsd_dep))
122*4882a593Smuzhiyunconf_data.set('HAVE_BACKTRACE', cc.has_function('backtrace'))
123*4882a593Smuzhiyunconf_data.set('HAVE_CBRT', cc.has_function('cbrt'))
124*4882a593Smuzhiyunconf_data.set('HAVE_EPOLL_CREATE1', cc.has_function('epoll_create1'))
125*4882a593Smuzhiyunconf_data.set('HAVE_GETUID', cc.has_function('getuid'))
126*4882a593Smuzhiyunconf_data.set('HAVE_GETEUID', cc.has_function('geteuid'))
127*4882a593Smuzhiyunconf_data.set('HAVE_ISASTREAM', cc.has_function('isastream'))
128*4882a593Smuzhiyunconf_data.set('HAVE_ISSETUGID', cc.has_function('issetugid'))
129*4882a593Smuzhiyunconf_data.set('HAVE_GETIFADDRS', cc.has_function('getifaddrs'))
130*4882a593Smuzhiyunconf_data.set('HAVE_GETPEEREID', cc.has_function('getpeereid'))
131*4882a593Smuzhiyunconf_data.set('HAVE_GETPEERUCRED', cc.has_function('getpeerucred'))
132*4882a593Smuzhiyunconf_data.set('HAVE_GETPROGNAME', cc.has_function('getprogname'))
133*4882a593Smuzhiyunconf_data.set('HAVE_GETZONEID', cc.has_function('getzoneid'))
134*4882a593Smuzhiyunconf_data.set('HAVE_MEMFD_CREATE', cc.has_function('memfd_create'))
135*4882a593Smuzhiyunconf_data.set('HAVE_MKOSTEMP', cc.has_function('mkostemp'))
136*4882a593Smuzhiyunconf_data.set('HAVE_MMAP', cc.has_function('mmap'))
137*4882a593Smuzhiyunconf_data.set('HAVE_POLL', cc.has_function('poll'))
138*4882a593Smuzhiyunconf_data.set('HAVE_POLLSET_CREATE', cc.has_function('pollset_create'))
139*4882a593Smuzhiyunconf_data.set('HAVE_POSIX_FALLOCATE', cc.has_function('posix_fallocate'))
140*4882a593Smuzhiyunconf_data.set('HAVE_PORT_CREATE', cc.has_function('port_create'))
141*4882a593Smuzhiyunconf_data.set('HAVE_REALLOCARRAY', cc.has_function('reallocarray', dependencies: libbsd_dep))
142*4882a593Smuzhiyunconf_data.set('HAVE_SETEUID', cc.has_function('seteuid'))
143*4882a593Smuzhiyunconf_data.set('HAVE_SETITIMER', cc.has_function('setitimer'))
144*4882a593Smuzhiyunconf_data.set('HAVE_SHMCTL64', cc.has_function('shmctl64'))
145*4882a593Smuzhiyunconf_data.set('HAVE_SIGACTION', cc.has_function('sigaction'))
146*4882a593Smuzhiyunconf_data.set('HAVE_STRCASECMP', cc.has_function('strcasecmp'))
147*4882a593Smuzhiyunconf_data.set('HAVE_STRCASESTR', cc.has_function('strcasestr'))
148*4882a593Smuzhiyunconf_data.set('HAVE_STRLCAT', cc.has_function('strlcat', dependencies: libbsd_dep))
149*4882a593Smuzhiyunconf_data.set('HAVE_STRLCPY', cc.has_function('strlcpy', dependencies: libbsd_dep))
150*4882a593Smuzhiyunconf_data.set('HAVE_STRNCASECMP', cc.has_function('strncasecmp'))
151*4882a593Smuzhiyunconf_data.set('HAVE_STRNDUP', cc.has_function('strndup'))
152*4882a593Smuzhiyunconf_data.set('HAVE_TIMINGSAFE_MEMCMP', cc.has_function('timingsafe_memcmp'))
153*4882a593Smuzhiyunconf_data.set('HAVE_VASPRINTF', cc.has_function('vasprintf'))
154*4882a593Smuzhiyunconf_data.set('HAVE_VSNPRINTF', cc.has_function('vsnprintf'))
155*4882a593Smuzhiyunconf_data.set('HAVE_WALKCONTEXT', cc.has_function('walkcontext'))
156*4882a593Smuzhiyun
157*4882a593Smuzhiyunconf_data.set('BUSFAULT', conf_data.get('HAVE_SIGACTION'))
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun# Don't let X dependencies typedef 'pointer'
160*4882a593Smuzhiyunconf_data.set('_XTYPEDEF_POINTER', '1')
161*4882a593Smuzhiyunconf_data.set('_XITYPEDEF_POINTER', '1')
162*4882a593Smuzhiyun
163*4882a593Smuzhiyunconf_data.set('LISTEN_TCP', get_option('listen_tcp'))
164*4882a593Smuzhiyunconf_data.set('LISTEN_UNIX', get_option('listen_unix'))
165*4882a593Smuzhiyunconf_data.set('LISTEN_LOCAL', get_option('listen_local'))
166*4882a593Smuzhiyun# XXX: Configurable?
167*4882a593Smuzhiyunconf_data.set('XTRANS_SEND_FDS', '1')
168*4882a593Smuzhiyun
169*4882a593Smuzhiyunconf_data.set('TCPCONN', '1')
170*4882a593Smuzhiyunconf_data.set('UNIXCONN', '1')
171*4882a593Smuzhiyunconf_data.set('IPv6', build_ipv6)
172*4882a593Smuzhiyun
173*4882a593Smuzhiyunconf_data.set('CLIENTIDS', '1') # XXX
174*4882a593Smuzhiyun
175*4882a593Smuzhiyunconf_data.set('BIGREQS', '1')
176*4882a593Smuzhiyunconf_data.set('COMPOSITE', '1')
177*4882a593Smuzhiyunconf_data.set('DAMAGE', '1')
178*4882a593Smuzhiyunconf_data.set('DBE', '1')
179*4882a593Smuzhiyunconf_data.set('DGA', build_dga)
180*4882a593Smuzhiyunconf_data.set('DPMSExtension', build_dpms)
181*4882a593Smuzhiyunconf_data.set('DRI2', build_dri2)
182*4882a593Smuzhiyunconf_data.set('DRI3', build_dri3)
183*4882a593Smuzhiyunconf_data.set_quoted('DRI_DRIVER_PATH', dri_dep.get_pkgconfig_variable('dridriverdir'))
184*4882a593Smuzhiyunconf_data.set('HAS_SHM', build_mitshm)
185*4882a593Smuzhiyunconf_data.set('MITSHM', build_mitshm)
186*4882a593Smuzhiyunconf_data.set('PANORAMIX', build_xinerama)
187*4882a593Smuzhiyunconf_data.set('PRESENT', '1')
188*4882a593Smuzhiyunconf_data.set('RANDR', '1')
189*4882a593Smuzhiyunconf_data.set('RES', build_res)
190*4882a593Smuzhiyunconf_data.set('RENDER', '1')
191*4882a593Smuzhiyunconf_data.set('SCREENSAVER', build_screensaver)
192*4882a593Smuzhiyunconf_data.set('SHAPE', '1')
193*4882a593Smuzhiyunconf_data.set('XACE', build_xace)
194*4882a593Smuzhiyunconf_data.set('XCMISC', '1')
195*4882a593Smuzhiyunconf_data.set('XCSECURITY', build_xsecurity)
196*4882a593Smuzhiyunconf_data.set('XDMCP', xdmcp_dep.found())
197*4882a593Smuzhiyunconf_data.set('XF86BIGFONT', build_xf86bigfont)
198*4882a593Smuzhiyunconf_data.set('XF86DRI', build_dri1)
199*4882a593Smuzhiyunconf_data.set('XF86VIDMODE', build_xf86vidmode)
200*4882a593Smuzhiyunconf_data.set('XFIXES', '1')
201*4882a593Smuzhiyunconf_data.set('XFreeXDGA', build_dga)
202*4882a593Smuzhiyunconf_data.set('XINERAMA', build_xinerama)
203*4882a593Smuzhiyunconf_data.set('XINPUT', '1')
204*4882a593Smuzhiyunconf_data.set('XRECORD', '1')
205*4882a593Smuzhiyunconf_data.set('XSELINUX', build_xselinux)
206*4882a593Smuzhiyunconf_data.set('XSYNC', '1')
207*4882a593Smuzhiyunconf_data.set('XTEST', '1')
208*4882a593Smuzhiyunconf_data.set('XV', build_xv)
209*4882a593Smuzhiyunconf_data.set('XvExtension', build_xv)
210*4882a593Smuzhiyunconf_data.set('XvMCExtension', build_xvmc)
211*4882a593Smuzhiyun
212*4882a593Smuzhiyunconf_data.set('HAVE_SHA1_IN_LIBNETTLE', '1') # XXX
213*4882a593Smuzhiyun
214*4882a593Smuzhiyunconf_data.set('HAVE_APM', build_apm or build_acpi)
215*4882a593Smuzhiyunconf_data.set('HAVE_ACPI', build_acpi)
216*4882a593Smuzhiyun
217*4882a593Smuzhiyunenable_debugging = get_option('buildtype') == 'debug'
218*4882a593Smuzhiyunconf_data.set('DEBUG', enable_debugging)
219*4882a593Smuzhiyun
220*4882a593Smuzhiyunconf_data.set_quoted('XVENDORNAME', get_option('vendor_name'))
221*4882a593Smuzhiyunconf_data.set_quoted('XVENDORNAMESHORT', get_option('vendor_name_short'))
222*4882a593Smuzhiyunconf_data.set_quoted('__VENDORDWEBSUPPORT__', get_option('vendor_web'))
223*4882a593Smuzhiyunconf_data.set_quoted('OSVENDOR', get_option('os_vendor'))
224*4882a593Smuzhiyunconf_data.set_quoted('BUILDERADDR', get_option('builder_addr'))
225*4882a593Smuzhiyunconf_data.set_quoted('BUILDERSTRING', get_option('builder_string'))
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun#
228*4882a593Smuzhiyun# for xorg-server.h only
229*4882a593Smuzhiyun#
230*4882a593Smuzhiyundefines_svr4 = '''#if !defined(SVR4) && !defined(__svr4__) && !defined(__SVR4)
231*4882a593Smuzhiyun#error "I am not SVR4"
232*4882a593Smuzhiyun#endif
233*4882a593Smuzhiyun'''
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun# BSD specifics
236*4882a593Smuzhiyunsupports_pccons = false
237*4882a593Smuzhiyunsupports_pcvt = false
238*4882a593Smuzhiyunsupports_syscons = false
239*4882a593Smuzhiyunsupports_wscons = false
240*4882a593Smuzhiyuncsrg_based = false
241*4882a593Smuzhiyun
242*4882a593Smuzhiyunif host_machine.system() == 'freebsd' or host_machine.system() == 'dragonflybsd'
243*4882a593Smuzhiyun  supports_pccons = true
244*4882a593Smuzhiyun  supports_pcvt = true
245*4882a593Smuzhiyun  supports_syscons = true
246*4882a593Smuzhiyun  csrg_based = true
247*4882a593Smuzhiyunendif
248*4882a593Smuzhiyun
249*4882a593Smuzhiyunif host_machine.system() == 'kfreebsd'
250*4882a593Smuzhiyun  supports_pccons = true
251*4882a593Smuzhiyun  supports_pcvt = true
252*4882a593Smuzhiyun  supports_syscons = true
253*4882a593Smuzhiyunendif
254*4882a593Smuzhiyun
255*4882a593Smuzhiyunif host_machine.system() == 'netbsd'
256*4882a593Smuzhiyun  supports_pccons = true
257*4882a593Smuzhiyun  supports_pcvt = true
258*4882a593Smuzhiyun  supports_wscons = true
259*4882a593Smuzhiyun  csrg_based = true
260*4882a593Smuzhiyunendif
261*4882a593Smuzhiyun
262*4882a593Smuzhiyunif host_machine.system() == 'openbsd'
263*4882a593Smuzhiyun  supports_pcvt = true
264*4882a593Smuzhiyun  supports_wscons = true
265*4882a593Smuzhiyun  csrg_based = true
266*4882a593Smuzhiyunendif
267*4882a593Smuzhiyun
268*4882a593Smuzhiyunconf_data.set('SVR4', cc.compiles(defines_svr4))
269*4882a593Smuzhiyunconf_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
270*4882a593Smuzhiyunconf_data.set('XORGSERVER', build_xorg)
271*4882a593Smuzhiyunconf_data.set_quoted('XCONFIGFILE', 'xorg.conf')
272*4882a593Smuzhiyunconf_data.set_quoted('__XSERVERNAME__', 'Xorg')
273*4882a593Smuzhiyunconf_data.set('WITH_VGAHW', build_vgahw)
274*4882a593Smuzhiyunconf_data.set('CSRG_BASED', csrg_based)
275*4882a593Smuzhiyunconf_data.set('PCCONS_SUPPORT', supports_pccons)
276*4882a593Smuzhiyunconf_data.set('PCVT_SUPPORT', supports_pcvt)
277*4882a593Smuzhiyunconf_data.set('SYSCONS_SUPPORT', supports_syscons)
278*4882a593Smuzhiyunconf_data.set('WSCONS_SUPPORT', supports_wscons)
279*4882a593Smuzhiyunconf_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess'))
280*4882a593Smuzhiyunconf_data.set('XSERVER_PLATFORM_BUS', build_udev)
281*4882a593Smuzhiyun
282*4882a593Smuzhiyunconfigure_file(output : 'dix-config.h',
283*4882a593Smuzhiyun               configuration : conf_data)
284*4882a593Smuzhiyun
285*4882a593Smuzhiyunconfigure_file(output : 'xorg-server.h',
286*4882a593Smuzhiyun               input : 'xorg-server.h.meson.in',
287*4882a593Smuzhiyun               configuration : conf_data,
288*4882a593Smuzhiyun               install_dir: xorgsdkdir)
289*4882a593Smuzhiyun
290*4882a593Smuzhiyunversion_data = configuration_data()
291*4882a593Smuzhiyunversion_data.set('VENDOR_RELEASE', '@0@'.format(release))
292*4882a593Smuzhiyunversion_data.set_quoted('VENDOR_NAME', get_option('vendor_name'))
293*4882a593Smuzhiyunversion_data.set_quoted('VENDOR_NAME_SHORT', get_option('vendor_name_short'))
294*4882a593Smuzhiyunversion_data.set_quoted('VENDOR_WEB', get_option('vendor_web'))
295*4882a593Smuzhiyunversion_data.set_quoted('VENDOR_MAN_VERSION', 'Version @0@.@1@.@2@'.format(major, minor, patch))
296*4882a593Smuzhiyunconfigure_file(output : 'version-config.h',
297*4882a593Smuzhiyun               configuration : version_data)
298*4882a593Smuzhiyun
299*4882a593Smuzhiyunxkb_data = configuration_data()
300*4882a593Smuzhiyun
301*4882a593Smuzhiyunxkb_data.set_quoted('XKB_BIN_DIRECTORY', xkb_bin_dir)
302*4882a593Smuzhiyunxkb_data.set_quoted('XKB_BASE_DIRECTORY', xkb_dir)
303*4882a593Smuzhiyunxkb_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
304*4882a593Smuzhiyunxkb_data.set_quoted('XKB_DFLT_MODEL', get_option('xkb_default_model'))
305*4882a593Smuzhiyunxkb_data.set_quoted('XKB_DFLT_LAYOUT', get_option('xkb_default_layout'))
306*4882a593Smuzhiyunxkb_data.set_quoted('XKB_DFLT_VARIANT', get_option('xkb_default_variant'))
307*4882a593Smuzhiyunxkb_data.set_quoted('XKB_DFLT_OPTIONS', get_option('xkb_default_options'))
308*4882a593Smuzhiyunxkb_data.set_quoted('XKM_OUTPUT_DIR', xkb_output_dir)
309*4882a593Smuzhiyun
310*4882a593Smuzhiyunconfigure_file(output : 'xkb-config.h',
311*4882a593Smuzhiyun               configuration : xkb_data)
312*4882a593Smuzhiyun
313*4882a593Smuzhiyunxorg_data = configuration_data()
314*4882a593Smuzhiyun
315*4882a593Smuzhiyunxorg_data.set_quoted('XORG_BIN_DIRECTORY', get_option('bindir'))
316*4882a593Smuzhiyunxorg_data.set('XORG_VERSION_CURRENT', release)
317*4882a593Smuzhiyunxorg_data.set_quoted('XF86CONFIGFILE', 'xorg.conf')
318*4882a593Smuzhiyunxorg_data.set_quoted('XCONFIGFILE', 'xorg.conf')
319*4882a593Smuzhiyunxorg_data.set_quoted('XCONFIGDIR', 'xorg.conf.d')
320*4882a593Smuzhiyunxorg_data.set_quoted('DEFAULT_XDG_DATA_HOME', '.local/share')
321*4882a593Smuzhiyunxorg_data.set_quoted('DEFAULT_XDG_DATA_HOME_LOGDIR', 'xorg')
322*4882a593Smuzhiyunxorg_data.set_quoted('DEFAULT_LOGDIR', log_dir)
323*4882a593Smuzhiyunxorg_data.set_quoted('DEFAULT_LOGPREFIX', 'Xorg.')
324*4882a593Smuzhiyunxorg_data.set_quoted('FALLBACK_INPUT_DRIVER', 'libinput')
325*4882a593Smuzhiyunxorg_data.set_quoted('DEFAULT_MODULE_PATH', join_paths(get_option('prefix'), module_dir))
326*4882a593Smuzhiyunxorg_data.set_quoted('DEFAULT_LIBRARY_PATH', join_paths(get_option('prefix'), get_option('libdir')))
327*4882a593Smuzhiyunxorg_data.set_quoted('__XSERVERNAME__', 'Xorg')
328*4882a593Smuzhiyunxorg_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess'))
329*4882a593Smuzhiyunxorg_data.set_quoted('PCI_TXT_IDS_PATH', '')
330*4882a593Smuzhiyunxorg_data.set('XSERVER_PLATFORM_BUS', build_udev)
331*4882a593Smuzhiyunxorg_data.set('WSCONS_SUPPORT', host_machine.system() == 'netbsd' or host_machine.system() == 'openbsd')
332*4882a593Smuzhiyunxorg_data.set('XF86PM', build_apm or build_acpi)
333*4882a593Smuzhiyun
334*4882a593Smuzhiyunif host_machine.system() == 'freebsd' or host_machine.system() == 'dragonflybsd'
335*4882a593Smuzhiyun    if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
336*4882a593Smuzhiyun        xorg_data.set('USE_DEV_IO', true)
337*4882a593Smuzhiyun    endif
338*4882a593Smuzhiyun    # XXX: Add link to libio on alpha
339*4882a593Smuzhiyunelif host_machine.system() == 'netbsd'
340*4882a593Smuzhiyun    # XXX: USE_ALPHA_PIO
341*4882a593Smuzhiyun    # XXX: Add link to libi386
342*4882a593Smuzhiyun    if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
343*4882a593Smuzhiyun        xorg_data.set('USE_I386_IOPL', true)
344*4882a593Smuzhiyun    endif
345*4882a593Smuzhiyunelif host_machine.system() == 'openbsd'
346*4882a593Smuzhiyun    # XXX: Add link to libi386, libamd64
347*4882a593Smuzhiyun    if host_machine.cpu_family() == 'x86'
348*4882a593Smuzhiyun        xorg_data.set('USE_I386_IOPL', true)
349*4882a593Smuzhiyun    endif
350*4882a593Smuzhiyun    if host_machine.cpu_family() == 'x86_64'
351*4882a593Smuzhiyun        xorg_data.set('USE_AMD64_IOPL', true)
352*4882a593Smuzhiyun    endif
353*4882a593Smuzhiyunendif
354*4882a593Smuzhiyun
355*4882a593Smuzhiyunconfigure_file(output : 'xorg-config.h',
356*4882a593Smuzhiyun               input : 'xorg-config.h.meson.in',
357*4882a593Smuzhiyun               configuration : xorg_data)
358*4882a593Smuzhiyun
359*4882a593Smuzhiyunxwin_data = configuration_data()
360*4882a593Smuzhiyunxwin_data.set_quoted('DEFAULT_LOGDIR', log_dir)
361*4882a593Smuzhiyunxwin_data.set('HAS_WINSOCK', host_machine.system() == 'windows', description: 'Use Windows sockets')
362*4882a593Smuzhiyunxwin_data.set('HAS_DEVWINDOWS', host_machine.system() == 'cygwin', description: 'Has /dev/windows for signaling new win32 messages')
363*4882a593Smuzhiyunxwin_data.set('RELOCATE_PROJECTROOT', host_machine.system() == 'windows', description: 'Make paths relative to the xserver installation location')
364*4882a593Smuzhiyun# XXX: these three are all the same as DEBUG so we should just change to that
365*4882a593Smuzhiyunxwin_data.set10('CYGDEBUG', enable_debugging)
366*4882a593Smuzhiyunxwin_data.set10('CYGWINDOWING_DEBUG',enable_debugging)
367*4882a593Smuzhiyunxwin_data.set10('CYGMULTIWINDOW_DEBUG', enable_debugging)
368*4882a593Smuzhiyun
369*4882a593Smuzhiyunconfigure_file(output : 'xwin-config.h',
370*4882a593Smuzhiyun               input : 'xwin-config.h.meson.in',
371*4882a593Smuzhiyun               configuration : xwin_data)
372*4882a593Smuzhiyun
373*4882a593Smuzhiyunxwayland_data = configuration_data()
374*4882a593Smuzhiyunxwayland_data.set('XWL_HAS_GLAMOR', build_glamor and (gbm_dep.found() or build_eglstream))
375*4882a593Smuzhiyunxwayland_data.set('XWL_HAS_EGLSTREAM', build_eglstream)
376*4882a593Smuzhiyun
377*4882a593Smuzhiyunconfigure_file(output : 'xwayland-config.h',
378*4882a593Smuzhiyun               input : 'xwayland-config.h.meson.in',
379*4882a593Smuzhiyun               configuration : xwayland_data)
380*4882a593Smuzhiyun
381*4882a593Smuzhiyunif build_xorg
382*4882a593Smuzhiyun    install_data(
383*4882a593Smuzhiyun        [
384*4882a593Smuzhiyun            'XIstubs.h',
385*4882a593Smuzhiyun            'Xprintf.h',
386*4882a593Smuzhiyun            'callback.h',
387*4882a593Smuzhiyun            'client.h',
388*4882a593Smuzhiyun            'closestr.h',
389*4882a593Smuzhiyun            'closure.h',
390*4882a593Smuzhiyun            'colormap.h',
391*4882a593Smuzhiyun            'colormapst.h',
392*4882a593Smuzhiyun            'hotplug.h',
393*4882a593Smuzhiyun            'cursor.h',
394*4882a593Smuzhiyun            'cursorstr.h',
395*4882a593Smuzhiyun            'dix.h',
396*4882a593Smuzhiyun            'dixaccess.h',
397*4882a593Smuzhiyun            'dixevents.h',
398*4882a593Smuzhiyun            'dixfont.h',
399*4882a593Smuzhiyun            'dixfontstr.h',
400*4882a593Smuzhiyun            'dixgrabs.h',
401*4882a593Smuzhiyun            'dixstruct.h',
402*4882a593Smuzhiyun            'events.h',
403*4882a593Smuzhiyun            'exevents.h',
404*4882a593Smuzhiyun            'extension.h',
405*4882a593Smuzhiyun            'extinit.h',
406*4882a593Smuzhiyun            'extnsionst.h',
407*4882a593Smuzhiyun            'gc.h',
408*4882a593Smuzhiyun            'gcstruct.h',
409*4882a593Smuzhiyun            'globals.h',
410*4882a593Smuzhiyun            'glx_extinit.h',
411*4882a593Smuzhiyun            'glxvndabi.h',
412*4882a593Smuzhiyun            'input.h',
413*4882a593Smuzhiyun            'inputstr.h',
414*4882a593Smuzhiyun            'list.h',
415*4882a593Smuzhiyun            'misc.h',
416*4882a593Smuzhiyun            'miscstruct.h',
417*4882a593Smuzhiyun            'opaque.h',
418*4882a593Smuzhiyun            'nonsdk_extinit.h',
419*4882a593Smuzhiyun            'optionstr.h',
420*4882a593Smuzhiyun            'os.h',
421*4882a593Smuzhiyun            'pixmap.h',
422*4882a593Smuzhiyun            'pixmapstr.h',
423*4882a593Smuzhiyun            'privates.h',
424*4882a593Smuzhiyun            'property.h',
425*4882a593Smuzhiyun            'propertyst.h',
426*4882a593Smuzhiyun            'ptrveloc.h',
427*4882a593Smuzhiyun            'region.h',
428*4882a593Smuzhiyun            'regionstr.h',
429*4882a593Smuzhiyun            'registry.h',
430*4882a593Smuzhiyun            'resource.h',
431*4882a593Smuzhiyun            'rgb.h',
432*4882a593Smuzhiyun            'screenint.h',
433*4882a593Smuzhiyun            'scrnintstr.h',
434*4882a593Smuzhiyun            'selection.h',
435*4882a593Smuzhiyun            'servermd.h',
436*4882a593Smuzhiyun            'site.h',
437*4882a593Smuzhiyun            'validate.h',
438*4882a593Smuzhiyun            'displaymode.h',
439*4882a593Smuzhiyun            'window.h',
440*4882a593Smuzhiyun            'windowstr.h',
441*4882a593Smuzhiyun            'xkbfile.h',
442*4882a593Smuzhiyun            'xkbsrv.h',
443*4882a593Smuzhiyun            'xkbstr.h',
444*4882a593Smuzhiyun            'xkbrules.h',
445*4882a593Smuzhiyun            'Xprintf.h',
446*4882a593Smuzhiyun            'xserver_poll.h',
447*4882a593Smuzhiyun            'xserver-properties.h',
448*4882a593Smuzhiyun        ],
449*4882a593Smuzhiyun        install_dir: xorgsdkdir,
450*4882a593Smuzhiyun    )
451*4882a593Smuzhiyunendif
452