android: Set max platform-sdk-version to 10000
[platform/upstream/mesa.git] / meson_options.txt
1 # Copyright © 2017-2019 Intel Corporation
2
3 # Permission is hereby granted, free of charge, to any person obtaining a copy
4 # of this software and associated documentation files (the "Software"), to deal
5 # in the Software without restriction, including without limitation the rights
6 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 # copies of the Software, and to permit persons to whom the Software is
8 # furnished to do so, subject to the following conditions:
9
10 # The above copyright notice and this permission notice shall be included in
11 # all copies or substantial portions of the Software.
12
13 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 # SOFTWARE.
20
21 option(
22   'platforms',
23   type : 'array',
24   value : ['auto'],
25   choices : [
26     'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
27   ],
28   description : 'window systems to support. If this is set to `auto`, all platforms applicable will be enabled.'
29 )
30 option(
31   'egl-native-platform',
32   type : 'combo',
33   value : 'auto',
34   choices : [
35     'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
36     'surfaceless', 'drm',
37   ],
38   description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY',
39 )
40 option(
41   'android-stub',
42   type : 'boolean',
43   value : false,
44   description : 'Build against android-stub',
45 )
46
47 option(
48   'dri3',
49   type : 'combo',
50   value : 'auto',
51   choices : ['auto', 'true', 'false', 'disabled', 'enabled'],
52   description : 'enable support for dri3'
53 )
54 option(
55   'dri-drivers',
56   type : 'array',
57   description : 'DEPRECATED: List of dri drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
58 )
59 option(
60   'dri-drivers-path',
61   type : 'string',
62   value : '',
63   description : 'Location to install dri drivers. Default: $libdir/dri.'
64 )
65 option(
66   'dri-search-path',
67   type : 'string',
68   value : '',
69   description : 'Locations to search for dri drivers, passed as colon separated list. Default: dri-drivers-path.'
70 )
71 option(
72   'gallium-drivers',
73   type : 'array',
74   value : ['auto'],
75   choices : [
76     'auto', 'kmsro', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
77     'swrast', 'v3d', 'vc4', 'etnaviv', 'tegra', 'i915', 'svga', 'virgl',
78     'panfrost', 'iris', 'lima', 'zink', 'd3d12', 'asahi', 'crocus'
79   ],
80   description : 'List of gallium drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
81 )
82 option(
83   'gallium-extra-hud',
84   type : 'boolean',
85   value : false,
86   description : 'Enable HUD block/NIC I/O HUD status support',
87 )
88 option(
89   'gallium-vdpau',
90   type : 'combo',
91   value : 'auto',
92   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
93   description : 'enable gallium vdpau frontend.',
94 )
95 option(
96   'vdpau-libs-path',
97   type : 'string',
98   value : '',
99   description : 'path to put vdpau libraries. defaults to $libdir/vdpau.'
100 )
101 option(
102   'gallium-xvmc',
103   type : 'combo',
104   value : 'auto',
105   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
106   description : 'enable gallium xvmc frontend.',
107 )
108 option(
109   'xvmc-libs-path',
110   type : 'string',
111   value : '',
112   description : 'path to put xvmc libraries. defaults to $libdir.'
113 )
114 option(
115   'gallium-omx',
116   type : 'combo',
117   value : 'auto',
118   choices : ['auto', 'disabled', 'bellagio', 'tizonia'],
119   description : 'enable gallium omx frontend.',
120 )
121 option(
122   'omx-libs-path',
123   type : 'string',
124   value : '',
125   description : 'path to put omx libraries. defaults to omx-bellagio pkg-config pluginsdir.'
126 )
127 option(
128   'gallium-va',
129   type : 'combo',
130   value : 'auto',
131   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
132   description : 'enable gallium va frontend.',
133 )
134 option(
135   'va-libs-path',
136   type : 'string',
137   value : '',
138   description : 'path to put va libraries. defaults to $libdir/dri.'
139 )
140 option(
141   'gallium-xa',
142   type : 'combo',
143   value : 'auto',
144   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
145   description : 'enable gallium xa frontend.',
146 )
147 option(
148   'gallium-nine',
149   type : 'boolean',
150   value : false,
151   description : 'build gallium "nine" Direct3D 9.x frontend.',
152 )
153 option(
154   'gallium-d3d10umd',
155   type : 'boolean',
156   value : false,
157   description : 'build gallium D3D10 WDDM UMD frontend.',
158 )
159 option(
160   'gallium-opencl',
161   type : 'combo',
162   choices : ['icd', 'standalone', 'disabled'],
163   value : 'disabled',
164   description : 'build gallium "clover" OpenCL frontend.',
165 )
166 option(
167   'opencl-spirv',
168   type : 'boolean',
169   value : false,
170   description : 'build gallium "clover" OpenCL frontend with SPIR-V binary support.',
171 )
172 option(
173   'opencl-native',
174   type : 'boolean',
175   value : true,
176   description : 'build gallium "clover" OpenCL frontend with native LLVM codegen support.',
177 )
178 option(
179   'static-libclc',
180   type : 'array',
181   value : [],
182   choices : ['spirv', 'spirv64', 'all'],
183   description : 'Link libclc SPIR-V statically.',
184 )
185 option(
186   'd3d-drivers-path',
187   type : 'string',
188   value : '',
189   description : 'Location of D3D drivers. Default: $libdir/d3d',
190 )
191 option(
192   'vulkan-drivers',
193   type : 'array',
194   value : ['auto'],
195   choices : ['auto', 'amd', 'broadcom', 'freedreno', 'imagination-experimental', 'intel', 'microsoft-experimental', 'panfrost', 'swrast', 'virtio-experimental'],
196   description : 'List of vulkan drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
197 )
198 option(
199   'freedreno-kgsl',
200   type : 'boolean',
201   value : false,
202   description : 'use kgsl backend for freedreno vulkan driver',
203 )
204 option(
205   'freedreno-virtio',
206   type : 'boolean',
207   value : false,
208   description : 'use experimental virtio backend for freedreno (currently only gallium driver)',
209 )
210 option(
211   'imagination-srv',
212   type : 'boolean',
213   value : false,
214   description : 'Enable Services backend for Imagination Technologies vulkan driver',
215 )
216 option(
217   'shader-cache',
218   type : 'combo',
219   value : 'auto',
220   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
221   description : 'Build with on-disk shader cache support.',
222 )
223 option(
224   'shader-cache-default',
225   type : 'boolean',
226   value : true,
227   description : 'If set to false, the feature is only activated when environment variable MESA_SHADER_CACHE_DISABLE is set to false',
228 )
229 option(
230   'shader-cache-max-size',
231   type : 'string',
232   value : '',
233   description : '''Default value for MESA_SHADER_CACHE_MAX_SIZE enviroment variable.
234    If set, determines the maximum size of the on-disk cache of compiled
235    shader programs, can be overriden by enviroment variable if needed. Should be set to a number optionally followed by
236    ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
237    gigabytes. By default, gigabytes will be assumed. And if unset, a
238    maximum size of 1GB will be used.'''
239 )
240 option(
241   'vulkan-icd-dir',
242   type : 'string',
243   value : '',
244   description : 'Location relative to prefix to put vulkan icds on install. Default: $datadir/vulkan/icd.d'
245 )
246 option(
247   'moltenvk-dir',
248   type : 'string',
249   value : '',
250   description : 'Location of the MoltenVk SDK. Default: '
251 )
252 option(
253   'vulkan-layers',
254   type : 'array',
255   value : [],
256   choices : ['device-select', 'intel-nullhw', 'overlay'],
257   description : 'List of vulkan layers to build'
258 )
259 option(
260   'shared-glapi',
261   type : 'combo',
262   value : 'auto',
263   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
264   description : 'Whether to build a shared or static glapi. Defaults to false on Windows, true elsewhere'
265 )
266 option(
267   'gles1',
268   type : 'combo',
269   value : 'auto',
270   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
271   description : 'Build support for OpenGL ES 1.x'
272 )
273 option(
274   'gles2',
275   type : 'combo',
276   value : 'auto',
277   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
278   description : 'Build support for OpenGL ES 2.x and 3.x'
279 )
280 option(
281   'opengl',
282   type : 'boolean',
283   value : true,
284   description : 'Build support for OpenGL (all versions)'
285 )
286 option(
287   'gbm',
288   type : 'combo',
289   value : 'auto',
290   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
291   description : 'Build support for gbm platform'
292 )
293 option(
294   'gbm-backends-path',
295   type : 'string',
296   value : '',
297   description : 'Locations to search for gbm backends, passed as colon separated list. Default: $libdir/gbm.'
298 )
299 option(
300   'glx',
301   type : 'combo',
302   value : 'auto',
303   choices : ['auto', 'disabled', 'dri', 'xlib'],
304   description : 'Build support for GLX platform'
305 )
306 option(
307   'egl',
308   type : 'combo',
309   value : 'auto',
310   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
311   description : 'Build support for EGL platform'
312 )
313 option(
314   'glvnd',
315   type : 'boolean',
316   value : false,
317   description : 'Enable GLVND support.'
318 )
319 option(
320   'microsoft-clc',
321   type : 'feature',
322   value : 'auto',
323   description : 'Build support for the Microsoft CLC to DXIL compiler'
324 )
325 option(
326   'spirv-to-dxil',
327   type : 'boolean',
328   value : false,
329   description : 'Build support for the SPIR-V to DXIL library'
330 )
331 option(
332   'glvnd-vendor-name',
333   type : 'string',
334   value : 'mesa',
335   description : 'Vendor name string to use for glvnd libraries'
336 )
337 option(
338    'glx-read-only-text',
339    type : 'boolean',
340    value : false,
341    description : 'Disable writable .text section on x86 (decreases performance)'
342 )
343 option(
344   'llvm',
345   type : 'combo',
346   value : 'auto',
347   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
348   description : 'Build with LLVM support.'
349 )
350 option(
351   'shared-llvm',
352   type : 'combo',
353   value : 'auto',
354   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
355   description : 'Whether to link LLVM shared or statically.'
356 )
357 option(
358   'draw-use-llvm',
359   type : 'boolean',
360   value : 'true',
361   description : 'Whether to use LLVM for the Gallium draw module, if LLVM is included.'
362 )
363 option(
364   'valgrind',
365   type : 'combo',
366   value : 'auto',
367   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
368   description : 'Build with valgrind support'
369 )
370 option(
371   'libunwind',
372   type : 'combo',
373   value : 'auto',
374   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
375   description : 'Use libunwind for stack-traces'
376 )
377 option(
378   'lmsensors',
379   type : 'combo',
380   value : 'auto',
381   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
382   description : 'Enable HUD lmsensors support.'
383 )
384 option(
385   'build-tests',
386   type : 'boolean',
387   value : false,
388   description : 'Build unit tests. Currently this will build *all* unit tests except the ACO tests, which may build more than expected.'
389 )
390 option(
391   'build-aco-tests',
392   type : 'boolean',
393   value : false,
394   description : 'Build ACO tests. These require RADV and glslang but not an AMD GPU.'
395 )
396 option(
397   'install-intel-gpu-tests',
398   type : 'boolean',
399   value : false,
400   description : 'Build and install Intel unit tests which require the GPU.  This option is for developers and the Intel CI system only.'
401 )
402 option(
403   'selinux',
404   type : 'boolean',
405   value : false,
406   description : 'Build an SELinux-aware Mesa.  This currently disables execmem support at runtime unless SELinux is configured with allow_execmem.'
407 )
408 option(
409   'execmem',
410   type : 'boolean',
411   value : true,
412   description : 'Enable execmem support.  Without execmem, glapi will fail to generate dynamic glapi stubs when entrypoints unknown to glapi but known to DRI drivers are requested in eglGetProcAddress or glXGetProcAddress.  This should be enabled unless the platform can guarantee glapi and DRI drivers are always built from the same source tree.'
413 )
414 option(
415   'osmesa',
416   type : 'boolean',
417   value : false,
418   description : 'Build OSmesa.'
419 )
420 option(
421   'osmesa-bits',
422   type : 'combo',
423   value : '8',
424   choices : ['8', '16', '32'],
425   description : 'Number of channel bits for OSMesa.'
426 )
427
428 option(
429   'tools',
430   type : 'array',
431   value : [],
432   choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'xvmc', 'lima', 'panfrost', 'asahi', 'imagination', 'all', 'dlclose-skip'],
433   description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
434 )
435 option(
436   'power8',
437   type : 'combo',
438   value : 'auto',
439   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
440   description : 'Enable power8 optimizations.',
441 )
442 option(
443   'xlib-lease',
444   type : 'combo',
445   value : 'auto',
446   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
447   description : 'Enable VK_EXT_acquire_xlib_display.'
448 )
449 option(
450   'glx-direct',
451   type : 'boolean',
452   value : true,
453   description : 'Enable direct rendering in GLX and EGL for DRI',
454 )
455 option('egl-lib-suffix',
456   type : 'string',
457   value : '',
458   description : 'Suffix to append to EGL library name.  Default: none.'
459 )
460 option(
461   'gles-lib-suffix',
462   type : 'string',
463   value : '',
464   description : 'Suffix to append to GLES library names.  Default: none.'
465 )
466 option(
467   'platform-sdk-version',
468   type : 'integer',
469   min : 25,
470   max : 10000,
471   value : 25,
472   description : 'Android Platform SDK version. Default: Nougat version.'
473 )
474 option(
475   'zstd',
476   type : 'combo',
477   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
478   value : 'auto',
479   description : 'Use ZSTD instead of ZLIB in some cases.'
480 )
481 option(
482    'zlib',
483    type : 'feature',
484    value : 'enabled',
485    description : 'Use ZLIB to build driver. Default: enabled'
486 )
487 option(
488   'sse2',
489   type : 'boolean',
490   value : true,
491   description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
492 )
493 option(
494   'perfetto',
495   type : 'boolean',
496   value : false,
497   description : 'Enable performance analysis with Perfetto. Default: false'
498 )
499 option(
500   'datasources',
501   type : 'array',
502   value : ['auto'],
503   choices : ['auto', 'panfrost', 'intel', 'freedreno'],
504   description: 'List of Perfetto datasources to build. If this is set to `auto`, datasources that can not be build are skipped. Default: [`auto`]'
505 )
506 option(
507   'custom-shader-replacement',
508   type : 'string',
509   value : '',
510   description : 'Enable a custom shader replacement mechanism. Note that enabling this option requires adding/generating a shader_replacement.h file that can be included (see shaderapi.c).'
511 )
512 option(
513   'vmware-mks-stats',
514   type : 'boolean',
515   value : false,
516   description : 'Build gallium VMware/svga driver with mksGuestStats instrumentation.'
517 )
518 option(
519   'vulkan-beta',
520   type : 'boolean',
521   value : false,
522   description : 'Build vulkan drivers with BETA extensions enabled.'
523 )
524 option(
525   'intel-clc',
526   type : 'feature',
527   value : 'disabled',
528   description : 'Build the intel-clc compiler (required for ray queries).'
529 )