intel: Add a little OpenCL C compiler binary
[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', 'intel', '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   'shader-cache',
206   type : 'combo',
207   value : 'auto',
208   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
209   description : 'Build with on-disk shader cache support.',
210 )
211 option(
212   'shader-cache-default',
213   type : 'boolean',
214   value : true,
215   description : 'If set to false, the feature is only activated when environment variable MESA_SHADER_CACHE_DISABLE is set to false',
216 )
217 option(
218   'shader-cache-max-size',
219   type : 'string',
220   value : '',
221   description : '''Default value for MESA_SHADER_CACHE_MAX_SIZE enviroment variable.
222    If set, determines the maximum size of the on-disk cache of compiled
223    shader programs, can be overriden by enviroment variable if needed. Should be set to a number optionally followed by
224    ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
225    gigabytes. By default, gigabytes will be assumed. And if unset, a
226    maximum size of 1GB will be used.'''
227 )
228 option(
229   'vulkan-icd-dir',
230   type : 'string',
231   value : '',
232   description : 'Location relative to prefix to put vulkan icds on install. Default: $datadir/vulkan/icd.d'
233 )
234 option(
235   'moltenvk-dir',
236   type : 'string',
237   value : '',
238   description : 'Location of the MoltenVk SDK. Default: '
239 )
240 option(
241   'vulkan-layers',
242   type : 'array',
243   value : [],
244   choices : ['device-select', 'intel-nullhw', 'overlay'],
245   description : 'List of vulkan layers to build'
246 )
247 option(
248   'shared-glapi',
249   type : 'combo',
250   value : 'auto',
251   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
252   description : 'Whether to build a shared or static glapi. Defaults to false on Windows, true elsewhere'
253 )
254 option(
255   'gles1',
256   type : 'combo',
257   value : 'auto',
258   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
259   description : 'Build support for OpenGL ES 1.x'
260 )
261 option(
262   'gles2',
263   type : 'combo',
264   value : 'auto',
265   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
266   description : 'Build support for OpenGL ES 2.x and 3.x'
267 )
268 option(
269   'opengl',
270   type : 'boolean',
271   value : true,
272   description : 'Build support for OpenGL (all versions)'
273 )
274 option(
275   'gbm',
276   type : 'combo',
277   value : 'auto',
278   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
279   description : 'Build support for gbm platform'
280 )
281 option(
282   'gbm-backends-path',
283   type : 'string',
284   value : '',
285   description : 'Locations to search for gbm backends, passed as colon separated list. Default: $libdir/gbm.'
286 )
287 option(
288   'glx',
289   type : 'combo',
290   value : 'auto',
291   choices : ['auto', 'disabled', 'dri', 'xlib'],
292   description : 'Build support for GLX platform'
293 )
294 option(
295   'egl',
296   type : 'combo',
297   value : 'auto',
298   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
299   description : 'Build support for EGL platform'
300 )
301 option(
302   'glvnd',
303   type : 'boolean',
304   value : false,
305   description : 'Enable GLVND support.'
306 )
307 option(
308   'microsoft-clc',
309   type : 'feature',
310   value : 'auto',
311   description : 'Build support for the Microsoft CLC to DXIL compiler'
312 )
313 option(
314   'spirv-to-dxil',
315   type : 'boolean',
316   value : false,
317   description : 'Build support for the SPIR-V to DXIL library'
318 )
319 option(
320   'glvnd-vendor-name',
321   type : 'string',
322   value : 'mesa',
323   description : 'Vendor name string to use for glvnd libraries'
324 )
325 option(
326    'glx-read-only-text',
327    type : 'boolean',
328    value : false,
329    description : 'Disable writable .text section on x86 (decreases performance)'
330 )
331 option(
332   'llvm',
333   type : 'combo',
334   value : 'auto',
335   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
336   description : 'Build with LLVM support.'
337 )
338 option(
339   'shared-llvm',
340   type : 'combo',
341   value : 'auto',
342   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
343   description : 'Whether to link LLVM shared or statically.'
344 )
345 option(
346   'draw-use-llvm',
347   type : 'boolean',
348   value : 'true',
349   description : 'Whether to use LLVM for the Gallium draw module, if LLVM is included.'
350 )
351 option(
352   'valgrind',
353   type : 'combo',
354   value : 'auto',
355   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
356   description : 'Build with valgrind support'
357 )
358 option(
359   'libunwind',
360   type : 'combo',
361   value : 'auto',
362   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
363   description : 'Use libunwind for stack-traces'
364 )
365 option(
366   'lmsensors',
367   type : 'combo',
368   value : 'auto',
369   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
370   description : 'Enable HUD lmsensors support.'
371 )
372 option(
373   'build-tests',
374   type : 'boolean',
375   value : false,
376   description : 'Build unit tests. Currently this will build *all* unit tests except the ACO tests, which may build more than expected.'
377 )
378 option(
379   'build-aco-tests',
380   type : 'boolean',
381   value : false,
382   description : 'Build ACO tests. These require RADV and glslang but not an AMD GPU.'
383 )
384 option(
385   'install-intel-gpu-tests',
386   type : 'boolean',
387   value : false,
388   description : 'Build and install Intel unit tests which require the GPU.  This option is for developers and the Intel CI system only.'
389 )
390 option(
391   'selinux',
392   type : 'boolean',
393   value : false,
394   description : 'Build an SELinux-aware Mesa.  This currently disables execmem support at runtime unless SELinux is configured with allow_execmem.'
395 )
396 option(
397   'execmem',
398   type : 'boolean',
399   value : true,
400   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.'
401 )
402 option(
403   'osmesa',
404   type : 'boolean',
405   value : false,
406   description : 'Build OSmesa.'
407 )
408 option(
409   'osmesa-bits',
410   type : 'combo',
411   value : '8',
412   choices : ['8', '16', '32'],
413   description : 'Number of channel bits for OSMesa.'
414 )
415
416 option(
417   'tools',
418   type : 'array',
419   value : [],
420   choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'xvmc', 'lima', 'panfrost', 'asahi', 'all', 'dlclose-skip'],
421   description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
422 )
423 option(
424   'power8',
425   type : 'combo',
426   value : 'auto',
427   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
428   description : 'Enable power8 optimizations.',
429 )
430 option(
431   'xlib-lease',
432   type : 'combo',
433   value : 'auto',
434   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
435   description : 'Enable VK_EXT_acquire_xlib_display.'
436 )
437 option(
438   'glx-direct',
439   type : 'boolean',
440   value : true,
441   description : 'Enable direct rendering in GLX and EGL for DRI',
442 )
443 option('egl-lib-suffix',
444   type : 'string',
445   value : '',
446   description : 'Suffix to append to EGL library name.  Default: none.'
447 )
448 option(
449   'gles-lib-suffix',
450   type : 'string',
451   value : '',
452   description : 'Suffix to append to GLES library names.  Default: none.'
453 )
454 option(
455   'platform-sdk-version',
456   type : 'integer',
457   min : 25,
458   max : 31,
459   value : 25,
460   description : 'Android Platform SDK version. Default: Nougat version.'
461 )
462 option(
463   'zstd',
464   type : 'combo',
465   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
466   value : 'auto',
467   description : 'Use ZSTD instead of ZLIB in some cases.'
468 )
469 option(
470    'zlib',
471    type : 'feature',
472    value : 'enabled',
473    description : 'Use ZLIB to build driver. Default: enabled'
474 )
475 option(
476   'sse2',
477   type : 'boolean',
478   value : true,
479   description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
480 )
481 option(
482   'perfetto',
483   type : 'boolean',
484   value : false,
485   description : 'Enable performance analysis with Perfetto. Default: false'
486 )
487 option(
488   'datasources',
489   type : 'array',
490   value : ['auto'],
491   choices : ['auto', 'panfrost', 'intel', 'freedreno'],
492   description: 'List of Perfetto datasources to build. If this is set to `auto`, datasources that can not be build are skipped. Default: [`auto`]'
493 )
494 option(
495   'custom-shader-replacement',
496   type : 'string',
497   value : '',
498   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).'
499 )
500 option(
501   'vmware-mks-stats',
502   type : 'boolean',
503   value : false,
504   description : 'Build gallium VMware/svga driver with mksGuestStats instrumentation.'
505 )
506 option(
507   'vulkan-beta',
508   type : 'boolean',
509   value : false,
510   description : 'Build vulkan drivers with BETA extensions enabled.'
511 )
512 option(
513   'intel-clc',
514   type : 'feature',
515   value : 'disabled',
516   description : 'Build the intel-clc compiler (required for ray queries).'
517 )