| # 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-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-windows-dll-name', |
| type : 'string', |
| value : 'libgallium_wgl', |
| description : 'name of gallium megadriver DLL built for Windows. ' + |
| 'defaults to libgallium_wgl.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( |
| 'opencl-external-clang-headers', |
| type : 'feature', |
| description : 'Use system Clang headers at runtime for OpenCL kernel ' + |
| 'compilation.', |
| ) |
| |
| 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', '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'], |
| 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( |
| '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', 'false': 'disabled'}, |
| value : 'disabled', |
| choices : [ |
| 'enabled', 'disabled', 'system', |
| ], |
| description : 'Build the intel-clc compiler (enables Vulkan Intel ' + |
| 'Ray Tracing on supported hardware).' |
| ) |
| |
| option( |
| 'video-codecs', |
| type : 'array', |
| value : [], |
| choices: [ |
| 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc' |
| ], |
| description : 'List of patent encumbered 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.' |
| ) |
| |
| 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.' |
| ) |