# Copyright © 2017-2019 Intel Corporation # SPDX-License-Identifier: MIT option( 'platforms', type : 'array', value : ['auto'], choices : [ 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', ], description : 'window systems to support. If this is set to `auto`, all ' + 'platforms applicable will be enabled.' ) option( 'egl-native-platform', type : 'combo', value : 'auto', choices : [ 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', 'surfaceless', 'drm', ], description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY', ) option( 'android-stub', type : 'boolean', value : false, description : 'Build against android-stub', ) option( 'android-strict', type : 'boolean', value : true, description : 'Enable strict Android compliance. Disabling may cause CTS ' + 'failures or other problems, but allows drivers to expose ' + 'capabilities that are normally hidden. Default: true' ) option( 'android-libbacktrace', type : 'feature', description : 'Use Android\'s libbacktrace', ) option( 'dri3', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'enable support for dri3' ) option( 'dri-drivers-path', type : 'string', value : '', description : 'Location to install dri drivers. Default: $libdir/dri.' ) option( 'dri-search-path', type : 'string', value : '', description : 'Locations to search for dri drivers, passed as colon ' + 'separated list. Default: dri-drivers-path.' ) option( 'expat', type : 'feature', value : 'auto', description : 'Controls the use of expat. ' + 'Cannot be disabled if xmlconfig is enabled.' ) option( 'gallium-drivers', type : 'array', value : ['auto'], choices : [ 'auto', 'kmsro', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno', 'swrast', 'v3d', 'vc4', 'etnaviv', 'tegra', 'i915', 'svga', 'virgl', 'panfrost', 'iris', 'lima', 'zink', 'd3d12', 'asahi', 'crocus', 'all', ], description : 'List of gallium drivers to build. If this is set to auto ' + 'all drivers applicable to the target OS/architecture ' + 'will be built' ) option( 'gallium-extra-hud', type : 'boolean', value : false, description : 'Enable HUD block/NIC I/O HUD status support', ) option( 'gallium-vdpau', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'enable gallium vdpau frontend.', ) option( 'vdpau-libs-path', type : 'string', value : '', description : 'path to put vdpau libraries. defaults to $libdir/vdpau.' ) option( 'gallium-omx', type : 'combo', value : 'auto', choices : ['auto', 'disabled', 'bellagio', 'tizonia'], description : 'enable gallium omx frontend.', ) option( 'omx-libs-path', type : 'string', value : '', description : 'path to put omx libraries. defaults to omx-bellagio ' + 'pkg-config pluginsdir.' ) option( 'gallium-va', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'enable gallium va frontend.', ) option( 'va-libs-path', type : 'string', value : '', description : 'path to put va libraries. defaults to $libdir/dri.' ) option( 'gallium-xa', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'enable gallium xa frontend.', ) option( 'gallium-nine', type : 'boolean', value : false, description : 'build gallium "nine" Direct3D 9.x frontend.', ) option( 'gallium-d3d10umd', type : 'boolean', value : false, description : 'build gallium D3D10 WDDM UMD frontend.', ) option( 'gallium-opencl', type : 'combo', choices : ['icd', 'standalone', 'disabled'], value : 'disabled', description : 'build gallium "clover" OpenCL frontend.', ) option( 'gallium-rusticl', type : 'boolean', value : false, description : 'build gallium "rusticl" OpenCL frontend.', ) option( 'gallium-wgl-dll-name', type : 'string', value : 'libgallium_wgl', description : 'name of gallium wgl target DLL built for Windows. ' + 'defaults to libgallium_wgl.dll to match DRI', ) option( 'gallium-d3d10-dll-name', type : 'string', value : 'libgallium_d3d10', description : 'name of gallium d3d10 target DLL built for Windows. ' + 'defaults to libgallium_d3d10.dll to match DRI', ) option( 'opencl-spirv', type : 'boolean', value : false, description : 'build gallium "clover" OpenCL frontend with SPIR-V ' + 'binary support.', ) option( 'static-libclc', type : 'array', value : [], choices : ['spirv', 'spirv64', 'all'], description : 'Link libclc SPIR-V statically.', ) option( 'd3d-drivers-path', type : 'string', value : '', description : 'Location of D3D drivers. Default: $libdir/d3d', ) option( 'vulkan-drivers', type : 'array', value : ['auto'], choices : ['auto', 'amd', 'broadcom', 'freedreno', 'intel', 'intel_hasvk', 'panfrost', 'swrast', 'virtio', 'imagination-experimental', 'microsoft-experimental', 'nouveau-experimental', 'gfxstream-experimental', 'all'], description : 'List of vulkan drivers to build. If this is set to auto ' + 'all drivers applicable to the target OS/architecture ' + 'will be built' ) # Note that currently turnip supports msm and kgsl, while the gallium driver # support msm and virtio. This is a temporary situation with virtio support # for turnip and kgsl support for gallium planned/in-progress. option( 'freedreno-kmds', type : 'array', value : ['msm'], choices : ['msm', 'kgsl', 'virtio', 'wsl'], description : 'List of kernel-mode drivers to enable for freedreno ' + 'gallium and vulkan driver', ) option( 'imagination-srv', type : 'boolean', value : false, description : 'Enable Services backend for Imagination Technologies ' + 'vulkan driver', ) option( 'shader-cache', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build with on-disk shader cache support.', ) option( 'shader-cache-default', type : 'boolean', value : true, description : 'If set to false, the feature is only activated when ' + 'environment variable MESA_SHADER_CACHE_DISABLE is set ' + 'to false', ) option( 'shader-cache-max-size', type : 'string', value : '', description : 'Default value for MESA_SHADER_CACHE_MAX_SIZE enviroment ' + 'variable. If set, determines the maximum size of the ' + 'on-disk cache of compiled shader programs, can be overriden ' + 'by enviroment variable if needed. Should be set to a number ' + 'optionally followed by ``K``, ``M``, or ``G`` to specify ' + 'a size in kilobytes, megabytes, or gigabytes. By default, ' + 'gigabytes will be assumed. And if unset, a maximum size of ' + '1GB will be used.' ) option( 'vulkan-icd-dir', type : 'string', value : '', description : 'Location relative to prefix to put vulkan icds on install. ' + 'Default: $datadir/vulkan/icd.d' ) option( 'moltenvk-dir', type : 'string', value : '', description : 'Location of the MoltenVk SDK. Default: ' ) option( 'vulkan-layers', type : 'array', value : [], choices : ['device-select', 'intel-nullhw', 'overlay'], description : 'List of vulkan layers to build' ) option( 'shared-glapi', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Whether to build a shared or static glapi. Defaults to ' + 'disabled on Windows, enabled elsewhere' ) option( 'gles1', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build support for OpenGL ES 1.x' ) option( 'gles2', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build support for OpenGL ES 2.x and 3.x' ) option( 'opengl', type : 'boolean', value : true, description : 'Build support for desktop OpenGL' ) option( 'gbm', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build support for gbm platform' ) option( 'gbm-backends-path', type : 'string', value : '', description : 'Locations to search for gbm backends, passed as colon ' + 'separated list. Default: $libdir/gbm.' ) option( 'glx', type : 'combo', value : 'auto', choices : ['auto', 'disabled', 'dri', 'xlib'], description : 'Build support for GLX platform' ) option( 'egl', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build support for EGL platform' ) option( 'glvnd', type : 'boolean', value : false, description : 'Enable GLVND support.' ) option( 'microsoft-clc', type : 'feature', value : 'auto', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build support for the Microsoft CLC to DXIL compiler' ) option( 'spirv-to-dxil', type : 'boolean', value : false, description : 'Build support for the SPIR-V to DXIL library' ) option( 'glvnd-vendor-name', type : 'string', value : 'mesa', description : 'Vendor name string to use for glvnd libraries' ) option( 'glx-read-only-text', type : 'boolean', value : false, description : 'Disable writable .text section on x86 (decreases performance)' ) option( 'llvm', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build with LLVM support.' ) option( 'shared-llvm', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Whether to link LLVM shared or statically.' ) option( 'draw-use-llvm', type : 'boolean', value : true, description : 'Whether to use LLVM for the Gallium draw module, if LLVM ' + 'is included.' ) option( 'valgrind', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build with valgrind support' ) option( 'libunwind', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Use libunwind for stack-traces' ) option( 'lmsensors', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Enable HUD lmsensors support.' ) option( 'build-tests', type : 'boolean', value : false, description : 'Build unit tests. Currently this will build *all* unit ' + 'tests except the ACO tests, which may build more than expected.' ) option( 'enable-glcpp-tests', type : 'boolean', value : true, description : 'Build glcpp unit tests. These are flaky on CI.' ) option( 'build-aco-tests', type : 'boolean', value : false, description : 'Build ACO tests. These require RADV and glslang but not ' + 'an AMD GPU.' ) option( 'install-intel-gpu-tests', type : 'boolean', value : false, description : 'Build and install Intel unit tests which require the GPU. ' + 'This option is for developers and the Intel CI system only.' ) option( 'selinux', type : 'boolean', value : false, description : 'Build an SELinux-aware Mesa. This currently disables ' + 'execmem support at runtime unless SELinux is configured ' + 'with allow_execmem.' ) option( 'execmem', type : 'boolean', deprecated : true, description : 'Does nothing, left here for a while to avoid build breakages.', ) option( 'osmesa', type : 'boolean', value : false, description : 'Build OSmesa.' ) option( 'tools', type : 'array', value : [], choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'lima', 'panfrost', 'asahi', 'imagination', 'all', 'dlclose-skip'], description : 'List of tools to build. (Note: `intel-ui` selects `intel`)', ) option( 'power8', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Enable power8 optimizations.', ) option( 'xlib-lease', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Enable VK_EXT_acquire_xlib_display.' ) option( 'glx-direct', type : 'boolean', value : true, description : 'Enable direct rendering in GLX and EGL for DRI', ) option('egl-lib-suffix', type : 'string', value : '', description : 'Suffix to append to EGL library name. Default: none.' ) option( 'gles-lib-suffix', type : 'string', value : '', description : 'Suffix to append to GLES library names. Default: none.' ) option( 'platform-sdk-version', type : 'integer', min : 25, max : 10000, value : 25, description : 'Android Platform SDK version. Default: Nougat version.' ) option( 'allow-kcmp', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Allow using KCMP_FILE to compare file descriptions. ' + 'auto = allowed everywhere except on Android' ) option( 'zstd', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Use ZSTD instead of ZLIB in some cases.' ) option( 'zlib', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, value : 'enabled', description : 'Use ZLIB to build driver. Default: enabled' ) option( 'sse2', type : 'boolean', value : true, description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true', ) option( 'perfetto', type : 'boolean', value : false, description : 'Enable performance analysis with Perfetto. Default: false' ) option( 'datasources', type : 'array', value : ['auto'], choices : ['auto', 'panfrost', 'intel', 'freedreno'], description : 'List of Perfetto datasources to build. If this is set to ' + '`auto`, datasources that can not be build are skipped. ' + 'Default: [`auto`]' ) option( 'teflon', type : 'boolean', value : false, description : 'Enable TensorFlow Lite delegate. Default: false' ) option( 'gpuvis', type : 'boolean', value : false, description : 'Enable tracing markers for gpuvis. Default: false' ) option( 'custom-shader-replacement', type : 'string', value : '', 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).' ) option( 'vmware-mks-stats', type : 'boolean', value : false, description : 'Build gallium VMware/svga driver with mksGuestStats ' + 'instrumentation.' ) option( 'vulkan-beta', type : 'boolean', value : false, description : 'Build vulkan drivers with BETA extensions enabled.' ) option( 'intel-clc', type : 'combo', deprecated: {'true': 'enabled'}, value : 'auto', choices : [ 'enabled', 'system', 'auto' ], description : 'Build the intel-clc compiler or use a system version.' ) option( 'install-intel-clc', type : 'boolean', value : false, description : 'Install the intel-clc compiler (if needed for cross builds).' ) option( 'intel-rt', type : 'feature', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build Ray Tracing on supported hardware.' ) option( 'video-codecs', type : 'array', value : ['all_free'], choices: [ 'all', 'all_free', 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec' ], description : 'List of codecs to build support for. ' + 'Distros might want to consult their legal department before ' + 'enabling these. This is used for all video APIs (vaapi, ' + 'vdpau, vulkan). Non-patent encumbered codecs will be ' + 'enabled by default with the all_free default value.' ) option( 'gallium-d3d12-video', type : 'feature', value : 'auto', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'build gallium d3d12 with video support.', ) option( 'radv-build-id', type : 'string', value : '', description : 'Override build id for shader cache keys (hex string). ' + 'Can be extracted with readelf -x .note.gnu.build-id' ) option( 'min-windows-version', type : 'integer', min : 7, max : 11, value : 8, description : 'Minimum Windows version to support. Defaults to Windows 8.' ) option( 'xmlconfig', type : 'feature', value : 'auto', deprecated: {'true': 'enabled', 'false': 'disabled'}, description : 'Build custom xmlconfig (driconf) support. If disabled, ' + 'the default driconf file is hardcoded into Mesa. ' + 'Requires expat.' ) option ( 'intel-xe-kmd', type : 'feature', value : 'disabled', description: 'Enable Intel Xe KMD support.' ) option( 'gfxstream-backend', type : 'boolean', value : 'false', description : 'Build gfxstream backend' )