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