glsl: remove unused detect_recursion_linked()
[mesa.git] / meson_options.txt
blobb2678c1d4fe0ccfd07ced93eddae934b0521ed2d
1 # Copyright © 2017-2019 Intel Corporation
2 # SPDX-License-Identifier: MIT
4 option(
5   'split-debug',
6   type : 'feature',
7   value : 'disabled',
8   description : 'split debug information (-gsplit-dwarf compile flag) and debug information in the gdb index format (--gdb-index)',
10 option(
11   'platforms',
12   type : 'array',
13   value : ['auto'],
14   choices : [
15     'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
16   ],
17   description : 'window systems to support. If this is set to `auto`, all ' +
18                 'platforms applicable will be enabled.'
21 option(
22   'egl-native-platform',
23   type : 'combo',
24   value : 'auto',
25   choices : [
26     'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
27     'surfaceless', 'drm',
28   ],
29   description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY',
32 option(
33   'android-stub',
34   type : 'boolean',
35   value : false,
36   description : 'Build against android-stub',
39 option(
40   'android-strict',
41   type : 'boolean',
42   value : true,
43   description : 'Enable strict Android compliance. Disabling may cause CTS ' +
44                 'failures or other problems, but allows drivers to expose ' +
45                 'capabilities that are normally hidden. Default: true'
48 option(
49   'android-libbacktrace',
50   type : 'feature',
51   description : 'Use Android\'s libbacktrace',
54 option(
55   'dri3',
56   type : 'feature',
57   deprecated: {'true': 'enabled', 'false': 'disabled'},
58   description : 'enable support for dri3'
61 option(
62   'dri-drivers-path',
63   type : 'string',
64   value : '',
65   description : 'Location to install dri drivers. Default: $libdir/dri.'
68 option(
69   'dri-search-path',
70   type : 'string',
71   value : '',
72   description : 'Locations to search for dri drivers, passed as colon ' +
73                 'separated list. Default: dri-drivers-path.'
76 option(
77   'expat',
78   type : 'feature',
79   value : 'auto',
80   description : 'Controls the use of expat. ' +
81                 'Cannot be disabled if xmlconfig is enabled.'
84 option(
85   'gallium-drivers',
86   type : 'array',
87   value : ['auto'],
88   choices : [
89     'auto', 'kmsro', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
90     'swrast', 'v3d', 'vc4', 'etnaviv', 'tegra', 'i915', 'svga', 'virgl',
91     'panfrost', 'iris', 'lima', 'zink', 'd3d12', 'asahi', 'crocus', 'all',
92   ],
93   description : 'List of gallium drivers to build. If this is set to auto ' +
94                 'all drivers applicable to the target OS/architecture ' +
95                 'will be built'
98 option(
99   'gallium-extra-hud',
100   type : 'boolean',
101   value : false,
102   description : 'Enable HUD block/NIC I/O HUD status support',
105 option(
106   'gallium-vdpau',
107   type : 'feature',
108   deprecated: {'true': 'enabled', 'false': 'disabled'},
109   description : 'enable gallium vdpau frontend.',
112 option(
113   'vdpau-libs-path',
114   type : 'string',
115   value : '',
116   description : 'path to put vdpau libraries. defaults to $libdir/vdpau.'
119 option(
120   'gallium-omx',
121   type : 'combo',
122   value : 'auto',
123   choices : ['auto', 'disabled', 'bellagio', 'tizonia'],
124   description : 'enable gallium omx frontend.',
127 option(
128   'omx-libs-path',
129   type : 'string',
130   value : '',
131   description : 'path to put omx libraries. defaults to omx-bellagio ' +
132                 'pkg-config pluginsdir.'
135 option(
136   'gallium-va',
137   type : 'feature',
138   deprecated: {'true': 'enabled', 'false': 'disabled'},
139   description : 'enable gallium va frontend.',
142 option(
143   'va-libs-path',
144   type : 'string',
145   value : '',
146   description : 'path to put va libraries. defaults to $libdir/dri.'
149 option(
150   'gallium-xa',
151   type : 'feature',
152   deprecated: {'true': 'enabled', 'false': 'disabled'},
153   description : 'enable gallium xa frontend.',
156 option(
157   'gallium-nine',
158   type : 'boolean',
159   value : false,
160   description : 'build gallium "nine" Direct3D 9.x frontend.',
163 option(
164   'gallium-d3d10umd',
165   type : 'boolean',
166   value : false,
167   description : 'build gallium D3D10 WDDM UMD frontend.',
170 option(
171   'gallium-opencl',
172   type : 'combo',
173   choices : ['icd', 'standalone', 'disabled'],
174   value : 'disabled',
175   description : 'build gallium "clover" OpenCL frontend.',
178 option(
179   'gallium-rusticl',
180   type : 'boolean',
181   value : false,
182   description : 'build gallium "rusticl" OpenCL frontend.',
185 option(
186   'gallium-wgl-dll-name',
187   type : 'string',
188   value : 'libgallium_wgl',
189   description : 'name of gallium wgl target DLL built for Windows. ' +
190                 'defaults to libgallium_wgl.dll to match DRI',
193 option(
194   'gallium-d3d10-dll-name',
195   type : 'string',
196   value : 'libgallium_d3d10',
197   description : 'name of gallium d3d10 target DLL built for Windows. ' +
198                 'defaults to libgallium_d3d10.dll to match DRI',
201 option(
202   'opencl-spirv',
203   type : 'boolean',
204   value : false,
205   description : 'build gallium "clover" OpenCL frontend with SPIR-V ' +
206                 'binary support.',
209 option(
210   'static-libclc',
211   type : 'array',
212   value : [],
213   choices : ['spirv', 'spirv64', 'all'],
214   description : 'Link libclc SPIR-V statically.',
217 option(
218   'd3d-drivers-path',
219   type : 'string',
220   value : '',
221   description : 'Location of D3D drivers. Default: $libdir/d3d',
224 option(
225   'vulkan-drivers',
226   type : 'array',
227   value : ['auto'],
228   choices : ['auto', 'amd', 'broadcom', 'freedreno', 'intel', 'intel_hasvk',
229              'panfrost', 'swrast', 'virtio', 'imagination-experimental',
230              'microsoft-experimental', 'nouveau', 'all'],
231   description : 'List of vulkan drivers to build. If this is set to auto ' +
232                 'all drivers applicable to the target OS/architecture ' +
233                 'will be built'
236 # Note that currently turnip supports msm and kgsl, while the gallium driver
237 # support msm and virtio.  This is a temporary situation with virtio support
238 # for turnip and kgsl support for gallium planned/in-progress.
239 option(
240   'freedreno-kmds',
241   type : 'array',
242   value : ['msm'],
243   choices : ['msm', 'kgsl', 'virtio', 'wsl'],
244   description : 'List of kernel-mode drivers to enable for freedreno ' +
245                 'gallium and vulkan driver',
248 option(
249   'imagination-srv',
250   type : 'boolean',
251   value : false,
252   description : 'Enable Services backend for Imagination Technologies ' +
253                 'vulkan driver',
256 option(
257   'shader-cache',
258   type : 'feature',
259   deprecated: {'true': 'enabled', 'false': 'disabled'},
260   description : 'Build with on-disk shader cache support.',
263 option(
264   'shader-cache-default',
265   type : 'boolean',
266   value : true,
267   description : 'If set to false, the feature is only activated when ' +
268                 'environment variable MESA_SHADER_CACHE_DISABLE is set ' +
269                 'to false',
272 option(
273   'shader-cache-max-size',
274   type : 'string',
275   value : '',
276   description : 'Default value for MESA_SHADER_CACHE_MAX_SIZE enviroment ' +
277                 'variable. If set, determines the maximum size of the ' +
278                 'on-disk cache of compiled shader programs, can be overriden ' +
279                 'by enviroment variable if needed. Should be set to a number ' +
280                 'optionally followed by ``K``, ``M``, or ``G`` to specify ' +
281                 'a size in kilobytes, megabytes, or gigabytes. By default, ' +
282                 'gigabytes will be assumed. And if unset, a maximum size of ' +
283                 '1GB will be used.'
286 option(
287   'vulkan-icd-dir',
288   type : 'string',
289   value : '',
290   description : 'Location relative to prefix to put vulkan icds on install. ' +
291                 'Default: $datadir/vulkan/icd.d'
294 option(
295   'moltenvk-dir',
296   type : 'string',
297   value : '',
298   description : 'Location of the MoltenVk SDK. Default: '
301 option(
302   'vulkan-layers',
303   type : 'array',
304   value : [],
305   choices : ['device-select', 'intel-nullhw', 'overlay'],
306   description : 'List of vulkan layers to build'
309 option(
310   'shared-glapi',
311   type : 'feature',
312   deprecated: {'true': 'enabled', 'false': 'disabled'},
313   description : 'Whether to build a shared or static glapi. Defaults to ' +
314                 'disabled on Windows, enabled elsewhere'
317 option(
318   'gles1',
319   type : 'feature',
320   deprecated: {'true': 'enabled', 'false': 'disabled'},
321   description : 'Build support for OpenGL ES 1.x'
324 option(
325   'gles2',
326   type : 'feature',
327   deprecated: {'true': 'enabled', 'false': 'disabled'},
328   description : 'Build support for OpenGL ES 2.x and 3.x'
331 option(
332   'opengl',
333   type : 'boolean',
334   value : true,
335   description : 'Build support for desktop OpenGL'
338 option(
339   'gbm',
340   type : 'feature',
341   deprecated: {'true': 'enabled', 'false': 'disabled'},
342   description : 'Build support for gbm platform'
345 option(
346   'gbm-backends-path',
347   type : 'string',
348   value : '',
349   description : 'Locations to search for gbm backends, passed as colon ' +
350                 'separated list. Default: $libdir/gbm.'
353 option(
354   'glx',
355   type : 'combo',
356   value : 'auto',
357   choices : ['auto', 'disabled', 'dri', 'xlib'],
358   description : 'Build support for GLX platform'
361 option(
362   'egl',
363   type : 'feature',
364   deprecated: {'true': 'enabled', 'false': 'disabled'},
365   description : 'Build support for EGL platform'
368 option(
369   'glvnd',
370   type : 'feature',
371   deprecated: {'true': 'enabled', 'false': 'disabled'},
372   description : 'Enable GLVND support.'
375 option(
376   'microsoft-clc',
377   type : 'feature',
378   value : 'auto',
379   deprecated: {'true': 'enabled', 'false': 'disabled'},
380   description : 'Build support for the Microsoft CLC to DXIL compiler'
383 option(
384   'spirv-to-dxil',
385   type : 'boolean',
386   value : false,
387   description : 'Build support for the SPIR-V to DXIL library'
390 option(
391   'glvnd-vendor-name',
392   type : 'string',
393   value : 'mesa',
394   description : 'Vendor name string to use for glvnd libraries'
397 option(
398    'glx-read-only-text',
399    type : 'boolean',
400    value : false,
401    description : 'Disable writable .text section on x86 (decreases performance)'
404 option(
405   'llvm',
406   type : 'feature',
407   deprecated: {'true': 'enabled', 'false': 'disabled'},
408   description : 'Build with LLVM support.'
411 option(
412   'shared-llvm',
413   type : 'feature',
414   deprecated: {'true': 'enabled', 'false': 'disabled'},
415   description : 'Whether to link LLVM shared or statically.'
418 option(
419   'draw-use-llvm',
420   type : 'boolean',
421   value : true,
422   description : 'Whether to use LLVM for the Gallium draw module, if LLVM ' +
423                 'is included.'
426 option(
427   'amd-use-llvm',
428   type : 'boolean',
429   value : true,
430   description : 'Whether to use LLVM for the AMD drivers, if LLVM ' +
431                 'is included.'
434 option(
435   'valgrind',
436   type : 'feature',
437   deprecated: {'true': 'enabled', 'false': 'disabled'},
438   description : 'Build with valgrind support'
441 option(
442   'libunwind',
443   type : 'feature',
444   deprecated: {'true': 'enabled', 'false': 'disabled'},
445   description : 'Use libunwind for stack-traces'
448 option(
449   'lmsensors',
450   type : 'feature',
451   deprecated: {'true': 'enabled', 'false': 'disabled'},
452   description : 'Enable HUD lmsensors support.'
455 option(
456   'build-tests',
457   type : 'boolean',
458   value : false,
459   description : 'Build unit tests. Currently this will build *all* unit ' +
460                 'tests except the ACO tests, which may build more than expected.'
463 option(
464   'enable-glcpp-tests',
465   type : 'boolean',
466   value : true,
467   description : 'Build glcpp unit tests. These are flaky on CI.'
470 option(
471   'build-aco-tests',
472   type : 'boolean',
473   value : false,
474   description : 'Build ACO tests. These require RADV and glslang but not ' +
475                 'an AMD GPU.'
478 option(
479   'install-intel-gpu-tests',
480   type : 'boolean',
481   value : false,
482   description : 'Build and install Intel unit tests which require the GPU. ' +
483                 'This option is for developers and the Intel CI system only.'
486 option(
487   'selinux',
488   type : 'boolean',
489   value : false,
490   description : 'Build an SELinux-aware Mesa.  This currently disables ' +
491                 'execmem support at runtime unless SELinux is configured ' +
492                 'with allow_execmem.'
495 option(
496   'execmem',
497   type : 'boolean',
498   deprecated : true,
499   description : 'Does nothing, left here for a while to avoid build breakages.',
502 option(
503   'osmesa',
504   type : 'boolean',
505   value : false,
506   description : 'Build OSmesa.'
509 option(
510   'tools',
511   type : 'array',
512   value : [],
513   choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui',
514              'nir', 'nouveau', 'lima', 'panfrost', 'asahi', 'imagination',
515              'all', 'dlclose-skip'],
516   description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
519 option(
520   'power8',
521   type : 'feature',
522   deprecated: {'true': 'enabled', 'false': 'disabled'},
523   description : 'Enable power8 optimizations.',
526 option(
527   'xlib-lease',
528   type : 'feature',
529   deprecated: {'true': 'enabled', 'false': 'disabled'},
530   description : 'Enable VK_EXT_acquire_xlib_display.'
533 option(
534   'glx-direct',
535   type : 'boolean',
536   value : true,
537   description : 'Enable direct rendering in GLX and EGL for DRI',
540 option('egl-lib-suffix',
541   type : 'string',
542   value : '',
543   description : 'Suffix to append to EGL library name.  Default: none.'
546 option(
547   'gles-lib-suffix',
548   type : 'string',
549   value : '',
550   description : 'Suffix to append to GLES library names.  Default: none.'
553 option(
554   'platform-sdk-version',
555   type : 'integer',
556   min : 25,
557   max : 10000,
558   value : 25,
559   description : 'Android Platform SDK version. Default: Nougat version.'
562 option(
563    'allow-kcmp',
564    type : 'feature',
565   deprecated: {'true': 'enabled', 'false': 'disabled'},
566    description : 'Allow using KCMP_FILE to compare file descriptions. ' +
567                  'auto = allowed everywhere except on Android'
570 option(
571   'zstd',
572   type : 'feature',
573   deprecated: {'true': 'enabled', 'false': 'disabled'},
574   description : 'Use ZSTD instead of ZLIB in some cases.'
577 option(
578    'zlib',
579    type : 'feature',
580    deprecated: {'true': 'enabled', 'false': 'disabled'},
581    value : 'enabled',
582    description : 'Use ZLIB to build driver. Default: enabled'
585 option(
586   'sse2',
587   type : 'boolean',
588   value : true,
589   description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
592 option(
593   'perfetto',
594   type : 'boolean',
595   value : false,
596   description : 'Enable performance analysis with Perfetto. Default: false'
599 option(
600   'datasources',
601   type : 'array',
602   value : ['auto'],
603   choices : ['auto', 'panfrost', 'intel', 'freedreno'],
604   description : 'List of Perfetto datasources to build. If this is set to ' +
605                 '`auto`, datasources that can not be build are skipped. ' +
606                 'Default: [`auto`]'
609 option(
610   'teflon',
611   type : 'boolean',
612   value : false,
613   description : 'Enable TensorFlow Lite delegate. Default: false'
616 option(
617   'gpuvis',
618   type : 'boolean',
619   value : false,
620   description : 'Enable tracing markers for gpuvis. Default: false'
623 option(
624   'custom-shader-replacement',
625   type : 'string',
626   value : '',
627   description : 'Enable a custom shader replacement mechanism. Note that ' +
628                 'enabling this option requires adding/generating a ' +
629                 'shader_replacement.h file that can be included (see ' +
630                 'shaderapi.c).'
633 option(
634   'vmware-mks-stats',
635   type : 'boolean',
636   value : false,
637   description : 'Build gallium VMware/svga driver with mksGuestStats ' +
638                 'instrumentation.'
641 option(
642   'vulkan-beta',
643   type : 'boolean',
644   value : false,
645   description : 'Build vulkan drivers with BETA extensions enabled.'
648 option(
649   'intel-clc',
650   type : 'combo',
651   deprecated: {'true': 'enabled'},
652   value : 'auto',
653   choices : [
654     'enabled', 'system', 'auto'
655   ],
656   description : 'Build the intel-clc compiler or use a system version.'
659 option(
660   'install-intel-clc',
661   type : 'boolean',
662   value : false,
663   description : 'Install the intel-clc compiler (if needed for cross builds).'
666 option(
667   'intel-rt',
668   type : 'feature',
669   deprecated: {'true': 'enabled', 'false': 'disabled'},
670   description : 'Build Ray Tracing on supported hardware.'
673 option(
674   'video-codecs',
675   type : 'array',
676   value : ['all_free'],
677   choices: [
678     'all', 'all_free', 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec'
679   ],
680   description : 'List of codecs to build support for. ' +
681                 'Distros might want to consult their legal department before ' +
682                 'enabling these. This is used for all video APIs (vaapi, ' +
683                 'vdpau, vulkan). Non-patent encumbered codecs will be ' +
684                 'enabled by default with the all_free default value.'
687 option(
688   'gallium-d3d12-video',
689   type : 'feature',
690   value : 'auto',
691   deprecated: {'true': 'enabled', 'false': 'disabled'},
692   description : 'build gallium d3d12 with video support.',
695 option(
696   'gallium-d3d12-graphics',
697   type : 'feature',
698   value : 'auto',
699   description : 'build gallium d3d12 with graphics pipeline support.',
702 option(
703   'radv-build-id',
704   type : 'string',
705   value : '',
706   description : 'Override build id for shader cache keys (hex string). ' +
707                 'Can be extracted with readelf -x .note.gnu.build-id'
710 option(
711   'min-windows-version',
712   type : 'integer',
713   min : 7,
714   max : 11,
715   value : 8,
716   description : 'Minimum Windows version to support. Defaults to Windows 8.'
719 option(
720   'xmlconfig',
721   type : 'feature',
722   value : 'auto',
723   deprecated: {'true': 'enabled', 'false': 'disabled'},
724   description : 'Build custom xmlconfig (driconf) support. If disabled, ' +
725                 'the default driconf file is hardcoded into Mesa. ' +
726                 'Requires expat.'