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