Lines Matching +full:android +full:- +full:virgl +full:- +full:llvmpipe

1 # Copyright © 2017-2020 Intel Corporation
2 # SPDX-License-Identifier: MIT
12 'b_ndebug=if-release',
22 add_global_arguments('-fobjc-arc', language : 'objc')
39 …ug') == 'true' or (get_option('buildtype') == 'release' and get_option('b_ndebug') == 'if-release')
45 '-D__STDC_CONSTANT_MACROS',
46 '-D__STDC_FORMAT_MACROS',
47 '-D__STDC_LIMIT_MACROS',
48 '-DPACKAGE_VERSION="@0@"'.format(meson.project_version()),
49 '-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/-/issues"',
57 with_moltenvk_dir = get_option('moltenvk-dir')
58 with_vulkan_icd_dir = get_option('vulkan-icd-dir')
59 with_tests = get_option('build-tests')
60 with_glcpp_tests = get_option('enable-glcpp-tests')
61 with_aco_tests = get_option('build-aco-tests')
62 with_glx_read_only_text = get_option('glx-read-only-text')
63 with_glx_direct = get_option('glx-direct')
65 with_vulkan_overlay_layer = get_option('vulkan-layers').contains('overlay')
66 with_vulkan_device_select_layer = get_option('vulkan-layers').contains('device-select')
67 with_vulkan_screenshot_layer = get_option('vulkan-layers').contains('screenshot')
71 'drm-shim',
72 'dlclose-skip',
77 'intel-ui',
86 with_any_vulkan_layers = get_option('vulkan-layers').length() != 0
87 with_intel_tools = with_tools.contains('intel') or with_tools.contains('intel-ui')
90 dri_drivers_path = get_option('dri-drivers-path')
95 gbm_backends_path = get_option('gbm-backends-path')
101 with_shared_glapi = get_option('shared-glapi') \
108 .require(with_shared_glapi, error_message : 'OpengGL ES 1.x requires shared-glapi') \
112 .require(with_shared_glapi, error_message : 'OpengGL ES 2.x requires shared-glapi') \
115 pre_args += '-DHAVE_OPENGL=@0@'.format(with_opengl.to_int())
116 pre_args += '-DHAVE_OPENGL_ES_1=@0@'.format(with_gles1.to_int())
117 pre_args += '-DHAVE_OPENGL_ES_2=@0@'.format(with_gles2.to_int())
123 …d', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos', 'android', 'managarm'].con…
125 gallium_drivers = get_option('gallium-drivers')
131 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'svga', 'llvmpipe', 'softpipe',
137 'tegra', 'virgl', 'lima', 'panfrost', 'llvmpipe', 'softpipe', 'iris',
142 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'llvmpipe', 'softpipe', 'zink'
146 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'etnaviv', 'llvmpipe', 'softpipe', 'zink'
149 …error('Unknown architecture @0@. Please pass -Dgallium-drivers to set driver options. Patches glad…
153 gallium_drivers = ['llvmpipe', 'softpipe', 'zink', 'd3d12']
155 gallium_drivers = ['llvmpipe', 'softpipe']
157 …error('Unknown OS @0@. Please pass -Dgallium-drivers to set driver options. Patches gladly accepte…
161 # Build-test everything except for i915, which depends on libdrm-intel which
162 # is not available on non-Intel distros.
165 'nouveau', 'svga', 'tegra', 'virgl', 'lima', 'panfrost', 'llvmpipe', 'softpipe', 'iris',
173 …warning('`gallium-drivers=swrast` is a deprecated alias for `gallium-drivers=softpipe,llvmpipe` an…
182 with_gallium_llvmpipe = with_swrast or gallium_drivers.contains('llvmpipe')
192 with_gallium_virgl = gallium_drivers.contains('virgl')
198 pre_args += '-DHAVE_@0@'.format(gallium_driver.to_upper())
201 # compatibility for "swrast" as an internal-ish driver name
204 pre_args += '-DHAVE_SWRAST'
218 _vulkan_drivers = get_option('vulkan-drivers')
230 …error('Unknown architecture @0@. Please pass -Dvulkan-drivers to set driver options. Patches gladl…
237 …error('Unknown OS @0@. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted…
244 'imagination-experimental', 'microsoft-experimental',
256 with_imagination_vk = _vulkan_drivers.contains('imagination-experimental')
257 with_imagination_srv = get_option('imagination-srv')
258 with_microsoft_vk = _vulkan_drivers.contains('microsoft-experimental')
271 freedreno_kmds = get_option('freedreno-kmds')
274 …rm to always be present at runtime which may not always be the case on platforms such as Android.')
276 …arning('As a side-effect, Turnip is forced to link with libdrm when built alongside Gallium DRM dr…
278 …libdrm when built alongside other Vulkan drivers which platforms such as Android may not have avai…
301 if get_option('intel-clc') != 'system'
302 # Require intel-clc with Anv & Iris (for internal shaders)
303 with_intel_clc = get_option('intel-clc') == 'enabled' or \
309 with_intel_vk_rt = get_option('intel-rt') \
327 pre_args += '-DHAVE_NVK'
337 with_microsoft_clc = get_option('microsoft-clc').enabled()
338 with_spirv_to_dxil = get_option('spirv-to-dxil')
342 pre_args += '-DBUILDING_MESA'
354 with_vulkan_beta = get_option('vulkan-beta')
360 pre_args += '-DVK_ENABLE_BETA_EXTENSIONS'
363 _codecs = get_option('video-codecs')
380 pre_args += '-DVIDEO_CODEC_@0@=@1@'.format(c.to_upper(), _codecs.contains(c).to_int())
396 …error('Unknown OS @0@. Please pass -Dplatforms to set platforms. Patches gladly accepted to fix th…
401 with_platform_android = _platforms.contains('android')
455 with_xlib_lease = get_option('xlib-lease') \
456 … (system_has_kms_drm or with_dri_platform == 'apple'), error_message : 'xlib-lease requires X11 an…
460 …with_dri or with_platform_android, error_message : 'EGL requires DRI, Haiku, Windows or Android') \
461 .require(with_shared_glapi, error_message : 'EGL requires shared-glapi') \
472 egl_native_platform = get_option('egl-native-platform')
479 error('-Degl-native-platform does not specify an enabled platform')
487 pre_args += '-DHAVE_@0@_PLATFORM'.format(platform.to_upper())
490 if with_platform_android and get_option('platform-sdk-version') >= 29
494 c_cpp_args += '-fno-emulated-tls'
497 # -mtls-dialect=gnu2 speeds up non-initial-exec TLS significantly but requires
501 if c_arg.startswith('-mtls-dialect=')
508 # cross-compiling, but because this is just an optimization we can skip it
510 warning('cannot auto-detect -mtls-dialect when cross-compiling, using compiler default')
512 # The way to specify the TLSDESC dialect is architecture-specific.
515 foreach tlsdesc_arg : ['-mtls-dialect=gnu2', '-mtls-dialect=desc']
516 # -fpic to force dynamic tls, otherwise TLS relaxation defeats check
518 args: [tlsdesc_arg, '-fpic'],
521 # check for lld 13 bug: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5665
523 … # get_linker_id misses LDFLAGS=-fuse-ld=lld: https://github.com/mesonbuild/meson/issues/6377
544 error('xlib based GLX requires softpipe or llvmpipe.')
550 error('dri based GLX requires shared-glapi')
562 .require(get_option('egl-lib-suffix') == '',
566 pre_args += '-DUSE_LIBGLVND=@0@'.format(with_glvnd.to_int())
567 glvnd_vendor_name = get_option('glvnd-vendor-name')
575 with_x11_dri2 = with_dri2 and get_option('legacy-x11').contains('dri2')
585 dep_dxheaders = dependency('directx-headers', required : false)
587 dep_dxheaders = dependency('DirectX-Headers',
589 fallback : ['DirectX-Headers', 'dep_dxheaders'],
595 _with_gallium_d3d12_video = get_option('gallium-d3d12-video')
599 pre_args += '-DHAVE_GALLIUM_D3D12_VIDEO'
610 vdpau = get_option('gallium-vdpau') \
611 ….require(system_has_kms_drm, error_message : 'VDPAU state tracker can only be build on unix-like O…
613 …llowing gallium drivers: r600, radeonsi, nouveau, d3d12 (with option gallium-d3d12-video, virgl).')
618 pre_args += '-DHAVE_ST_VDPAU'
622 vdpau_drivers_path = get_option('vdpau-libs-path')
638 …if run_command(prog_glslang, ['--version'], check : false).stdout().split(':')[2].version_compare(…
639 glslang_depfile = ['--depfile', '@DEPFILE@']
643 if run_command(prog_glslang, [ '--quiet', '--version' ], check : false).returncode() == 0
644 glslang_quiet = ['--quiet']
658 _va = get_option('gallium-va') \
660 …llowing gallium drivers: r600, radeonsi, nouveau, d3d12 (with option gallium-d3d12-video), virgl.')
661 _dep_va_name = host_machine.system() == 'windows' ? 'libva-win32' : 'libva'
667 pre_args += '-DHAVE_VA_SURFACE_ATTRIB_DRM_FORMAT_MODIFIERS'
672 va_drivers_path = get_option('va-libs-path')
677 with_gallium_xa = get_option('gallium-xa') \
678 ….require(system_has_kms_drm, error_message : 'XA state tracker can only be built on unix-like OSes…
683 d3d_drivers_path = get_option('d3d-drivers-path')
688 with_gallium_st_nine = get_option('gallium-nine')
691 error('The nine state tracker requires gallium softpipe/llvmpipe.')
705 error('The nine state tracker requires at least one non-swrast gallium driver.')
708 with_gallium_st_d3d10umd = get_option('gallium-d3d10umd')
711 error('The d3d10umd state tracker requires gallium softpipe/llvmpipe.')
728 args : '-mpower8-vector',
730 pre_args += ['-D_ARCH_PWR8']
731 c_cpp_args += '-mpower8-vector'
738 if get_option('vmware-mks-stats')
740 error('vmware-mks-stats requires gallium VMware/svga driver.')
742 pre_args += '-DVMX86_STATS=1'
745 _opencl = get_option('gallium-opencl')
762 with_gallium_rusticl = get_option('gallium-rusticl')
794 'You can install the latest version for your user with `cargo install bindgen-cli`.')
800 'you can install the latest version for your user with `cargo install bindgen-cli`.')
804 with_clover_spirv = with_gallium_clover and get_option('opencl-spirv')
816 pre_args += '-DUSE_XSHM'
819 pre_args += '-DGLX_INDIRECT_RENDERING'
821 pre_args += '-DGLX_DIRECT_RENDERING'
824 pre_args += '-DGLX_USE_DRM'
826 pre_args += '-DGLX_USE_APPLEGL'
831 pre_args += '-DGLX_USE_APPLE'
834 pre_args += '-DGLX_USE_WINDOWSGL'
844 pre_args += '-DGLAPI_EXPORT_PROTO_ENTRY_POINTS=@0@'.format(with_glapi_export_proto_entry_points.to_…
846 with_android_stub = get_option('android-stub')
848 error('`-D android-stub=true` makes no sense without `-D platforms=android`')
851 with_libbacktrace = get_option('android-libbacktrace') \
852 …h_platform_android, error_message : '`-D android-libbacktrace=enabled` makes no sense without `-D …
857 cpp_args += '-DWITH_LIBBACKTRACE'
872 if get_option('platform-sdk-version') >= 26
875 if get_option('platform-sdk-version') >= 30
876 …dep_android_mapper4 = dependency('android.hardware.graphics.mapper', version : '>= 4.0', required …
879 pre_args += '-DANDROID_API_LEVEL=' + get_option('platform-sdk-version').to_string()
880 if get_option('android-strict')
881 pre_args += '-DANDROID_STRICT'
885 # On Android, seccomp kills the process on kernels without
888 # KCMP by default on Android.
889 if get_option('allow-kcmp') \
892 pre_args += '-DALLOW_KCMP'
897 prog_python, '-c',
911 prog_python, '-c',
925 pre_args += '-DETIME=ETIMEDOUT'
930 pre_args += '-DMESA_DEBUG=@0@'.format(with_mesa_debug.to_int())
932 with_split_debug = get_option('split-debug') \
933 .disable_if(not cc.has_argument('-gsplit-dwarf'),
934 error_message : 'split-debug requires compiler -gsplit-dwarf support') \
935 .disable_if(not cc.has_link_argument('-Wl,--gdb-index'),
936 error_message : 'split-debug requires the linker argument -Wl,--gdb-index')
939 add_project_arguments('-gsplit-dwarf', language : ['c', 'cpp'])
940 add_project_link_arguments('-Wl,--gdb-index', language : ['c', 'cpp'])
943 with_shader_cache = get_option('shader-cache') \
948 pre_args += '-DENABLE_SHADER_CACHE'
949 if not get_option('shader-cache-default')
950 pre_args += '-DSHADER_CACHE_DISABLE_BY_DEFAULT'
953 shader_cache_max_size = get_option('shader-cache-max-size')
955 pre_args += '-DMESA_SHADER_CACHE_MAX_SIZE="@0@"'.format(shader_cache_max_size)
963 pre_args += '-DHAVE___BUILTIN_@0@'.format(b.to_upper())
974 pre_args += '-DHAVE_FUNC_ATTRIBUTE_@0@'.format(a.to_upper())
977 pre_args += '-DHAVE_FUNC_ATTRIBUTE_VISIBILITY'
981 pre_args += '-DHAVE_UINT128'
985 pre_args += '-DHAVE_REALLOCARRAY'
988 pre_args += '-DHAVE_FMEMOPEN'
992 if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku', 'android', 'managarm'].contains(h…
993 pre_args += '-D_GNU_SOURCE'
995 pre_args += '-D__EXTENSIONS__'
998 '-D_WINDOWS', '-D_WIN32_WINNT=0x0A00', '-DWINVER=0x0A00',
999 '-DPIPE_SUBSYSTEM_WINDOWS_USER',
1000 '-D_USE_MATH_DEFINES', # XXX: scons didn't use this for mingw
1004 '-DVC_EXTRALEAN',
1005 '-D_CRT_SECURE_NO_WARNINGS',
1006 '-D_CRT_SECURE_NO_DEPRECATE',
1007 '-D_SCL_SECURE_NO_WARNINGS',
1008 '-D_SCL_SECURE_NO_DEPRECATE',
1009 '-D_ALLOW_KEYWORD_MACROS',
1010 '-D_HAS_EXCEPTIONS=0', # Tell C++ STL to not use exceptions
1011 '-DNOMINMAX',
1024 pre_args += ['-D__MSVCRT_VERSION__=0x0700']
1028 pre_args += '-D_ISOC11_SOURCE'
1039 '/wd4056', # overflow in floating-point constant arithmetic
1049 '/wd4200', # nonstandard extension used: zero-sized array in struct/union
1063 '-Werror=implicit-function-declaration',
1064 '-Werror=missing-prototypes',
1065 '-Werror=return-type',
1066 '-Werror=empty-body',
1067 '-Werror=incompatible-pointer-types',
1068 '-Werror=int-conversion',
1069 '-Wimplicit-fallthrough',
1070 '-Wmisleading-indentation',
1071 '-Wno-missing-field-initializers',
1072 '-Wno-format-truncation',
1073 '-Wno-nonnull-compare',
1074 '-fno-math-errno',
1075 '-fno-trapping-math',
1076 '-Qunused-arguments',
1077 '-fno-common',
1078 '-Wno-unknown-pragmas',
1080 '-Wno-microsoft-enum-value',
1081 '-Wno-unused-function',
1084 '-Werror=return-type',
1085 '-Werror=empty-body',
1086 '-Wmisleading-indentation',
1087 '-Wno-non-virtual-dtor',
1088 '-Wno-missing-field-initializers',
1089 '-Wno-format-truncation',
1090 '-fno-math-errno',
1091 '-fno-trapping-math',
1092 '-Qunused-arguments',
1094 # gcc does aggressive dead-store elimination which threats all writes
1097 '-flifetime-dse=1',
1098 '-Wno-unknown-pragmas',
1100 '-Wno-microsoft-enum-value',
1105 _trial_c += ['-Werror=format', '-Wformat-security']
1106 _trial_cpp += ['-Werror=format', '-Wformat-security']
1111 _trial_c += ['-Werror=thread-safety']
1119 args : '-Wl,--gc-sections', name : 'gc-sections')
1120 ld_args_gc_sections += '-Wl,--gc-sections'
1121 _trial_c += ['-ffunction-sections', '-fdata-sections']
1122 _trial_cpp += ['-ffunction-sections', '-fdata-sections']
1126 # are disabled. Don't treat this as an error, since we build with -Werror even if
1129 _trial_c += ['-Wno-unused-variable', '-Wno-unused-but-set-variable', '/wd4189']
1130 _trial_cpp += ['-Wno-unused-variable', '-Wno-unused-but-set-variable', '/wd4189']
1137 ['-Wno-override-init', '-Wno-initializer-overrides']
1143 _trial_msvc = ['-Werror=pointer-arith', '-Werror=vla', '-Werror=gnu-empty-initializer']
1166 '-Wl,--nxcompat',
1167 '-Wl,--dynamicbase',
1168 '-static-libgcc',
1169 '-static-libstdc++',
1175 '-Wl,--nxcompat',
1176 '-Wl,--dynamicbase',
1177 '-static-libgcc',
1178 '-static-libstdc++',
1190 pre_args += '-DUSE_SSE41'
1194 sse41_args = ['-msse4.1']
1198 sse2_arg = ['-msse2', '-mfpmath=sse']
1199 sse2_args = [sse2_arg, '-mstackrealign']
1207 # -mstackrealign or -mincoming-stack-boundary=2.
1209 # XXX: We could have SSE without -mstackrealign if we always used
1217 # GCC on x86 (not x86_64) with -msse* assumes a 16 byte aligned stack, but
1219 sse41_args += '-mstackrealign'
1226 if cc.has_function('__builtin_ia32_clflushopt', args : '-mclflushopt')
1227 pre_args += '-DHAVE___BUILTIN_IA32_CLFLUSHOPT'
1228 clflushopt_args = ['-mclflushopt']
1248 pre_args += '-DUSE_GCC_ATOMIC_BUILTINS'
1250 # Not all atomic calls can be turned into lock-free instructions, in which
1252 # link with -latomic.
1254 # This can happen for 64-bit atomic operations on 32-bit architectures such
1264 name : 'GCC atomic builtins required -latomic')
1275 pre_args += '-DMISSING_64BIT_ATOMICS'
1286 pre_args += ['-DUSE_X86_ASM']
1289 pre_args += ['-DGLX_X86_READONLY_TEXT']
1295 pre_args += ['-DUSE_X86_64_ASM']
1300 pre_args += ['-DUSE_ARM_ASM']
1305 pre_args += ['-DUSE_AARCH64_ASM']
1310 pre_args += ['-DUSE_SPARC_ASM']
1315 pre_args += ['-DUSE_PPC64LE_ASM']
1320 pre_args += ['-DUSE_MIPS64EL_ASM']
1325 pre_args += ['-DUSE_LOONGARCH64_ASM']
1333 pre_args += '-DMAJOR_IN_SYSMACROS'
1338 pre_args += '-DMAJOR_IN_MKDEV'
1342 pre_args += '-DHAS_SCHED_H'
1344 pre_args += '-DHAS_SCHED_GETAFFINITY'
1351 pre_args += '-DHAVE_SYS_SYSCTL_H'
1358 pre_args += '-DHAVE_@0@'.format(h.to_upper().underscorify())
1377 pre_args += '-DHAVE_@0@'.format(f.to_upper())
1395 pre_args += '-DHAVE_GNU_QSORT_R'
1409 pre_args += '-DHAVE_BSD_QSORT_R'
1413 pre_args += '-DHAVE_STRUCT_TIMESPEC'
1419 # Current only Android's c11 <threads.h> are verified
1420 pre_args += '-DHAVE_THRD_CREATE'
1426 args : '-D_GNU_SOURCE')
1427 pre_args += '-DHAVE_PROGRAM_INVOCATION_NAME'
1433 args : '-D_GNU_SOURCE')
1434 pre_args += '-DHAVE_ISSIGNALING'
1440 # non-windows platforms.
1443 pre_args += '-DHAVE_POSIX_MEMALIGN'
1449 pre_args += '-DHAVE_DIRENT_D_TYPE'
1471 pre_args += '-DHAVE_STRTOD_L'
1476 if cc.links('int main() { return 0; }', args : '-Wl,-Bsymbolic', name : 'Bsymbolic')
1477 ld_args_bsymbolic += '-Wl,-Bsymbolic'
1481 args : '-Wl,--version-script=@0@'.format(
1482 join_paths(meson.current_source_dir(), 'build-support/conftest.map')),
1483 name : 'version-script')
1488 args : '-Wl,--dynamic-list=@0@'.format(
1489 join_paths(meson.current_source_dir(), 'build-support/conftest.dyn')),
1490 name : 'dynamic-list')
1494 ld_args_build_id = cc.get_supported_link_arguments('-Wl,--build-id=sha1')
1504 pre_args += '-DHAVE_DLADDR'
1509 pre_args += '-DHAVE_DL_ITERATE_PHDR'
1515 pre_args += '-DSUPPORT_INTEL_INTEGRATED_GPUS'
1534 pre_args += '-DHAVE_ZLIB'
1539 pre_args += '-DHAVE_ZSTD'
1544 pre_args += '-DHAVE_COMPRESSION'
1558 pre_args += '-DHAVE_PTHREAD'
1563 args : '-D_GNU_SOURCE')
1564 pre_args += '-DHAVE_PTHREAD_SETAFFINITY'
1583 # We don't require expat on Android or Windows
1586 error_message : 'xmlconfig not available on Android or Windows') \
1593 pre_args += '-DWIN32_LEAN_AND_MEAN' # http://msdn2.microsoft.com/en-us/library/6dwk3a1z.aspx
1602 dep_regex = declare_dependency(compile_args : ['-DNO_REGEX'])
1614 if (get_option('min-windows-version') < 8)
1615 pre_args += '-DWINDOWS_NO_FUTEX'
1672 # dependencies (such as vk-runtime) linking to it
1676 pre_args += '-DHAVE_LIBDRM'
1684 pre_args += '-DHAVE_LIBUDEV'
1700 # all-targets is needed to support static linking LLVM build with multiple targets
1702 llvm_optional_modules += ['all-targets', 'frontendopenmp', 'windowsdriver']
1706 # all-targets is needed to support static linking LLVM build with multiple targets.
1709 llvm_optional_modules += ['all-targets', 'windowsdriver', 'frontendhlsl', 'frontenddriver']
1711 draw_with_llvm = get_option('draw-use-llvm')
1717 amd_with_llvm = get_option('amd-use-llvm')
1721 # ORCJIT for llvmpipe functionality.
1723 llvm_with_orcjit = get_option('llvm-orcjit') or not llvm_has_mcjit
1733 _shared_llvm = get_option('shared-llvm') \
1743 method : host_machine.system() == 'windows' ? 'auto' : 'config-tool',
1758 pre_args += '-DMESA_LLVM_VERSION_STRING="@0@"'.format(dep_llvm.version())
1759 pre_args += '-DLLVM_IS_SHARED=@0@'.format(_shared_llvm.to_int())
1762 error('Lavapipe and llvmpipe require LLVM draw support.')
1777 # The CMake finder will return 'ON', the llvm-config will return 'YES'
1778 …= ['ON', 'YES'].contains(dep_llvm.get_variable(cmake : 'LLVM_ENABLE_RTTI', configtool: 'has-rtti'))
1801 error('llvmpipe requires LLVM and is enabled, but LLVM is disabled.')
1810 pre_args += '-DLLVM_AVAILABLE=@0@'.format(with_llvm.to_int())
1811 pre_args += '-DDRAW_LLVM_AVAILABLE=@0@'.format((with_llvm and draw_with_llvm).to_int())
1812 pre_args += '-DAMD_LLVM_AVAILABLE=@0@'.format(amd_with_llvm.to_int())
1813 pre_args += '-DGALLIVM_USE_ORCJIT=@0@'.format((with_llvm and llvm_with_orcjit).to_int())
1820 # Require an SPIRV-LLVM-Translator version compatible with the chosen LLVM
1824 # we do not want to accept SPIRV-LLVM-Translator 8.0.0.1 as that version
1837 # LLVMSPIRVLib is available at https://github.com/KhronosGroup/SPIRV-LLVM-Translator
1844 'SPIRV-Tools',
1849 pre_args += '-DHAVE_SPIRV_TOOLS'
1856 dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false)
1882 dep_lua = dependency('lua54', 'lua5.4', 'lua-5.4',
1883 'lua53', 'lua5.3', 'lua-5.3',
1900 pre_args += '-DUSE_LIBELF'
1907 pre_args += '-DHAVE_VALGRIND'
1914 asan_c_args = ['-DBUILT_WITH_ASAN=1']
1916 asan_c_args = ['-DBUILT_WITH_ASAN=0']
1922 pre_args += '-DTHREAD_SANITIZER=1'
1923 # meson versions prior to 1.4 will warn "Consider using the built-in option for sanitizers ..."
1924 # later on because it only checks whether the option starts with "-fsanitize",
1925 # but there is no built-in option for adding a blacklist
1926 …tsan_blacklist = '-fsanitize-blacklist=@0@'.format(join_paths(meson.project_source_root(), 'build-
1930 …warning('Compiler does not support "-fsanitize-blacklist", expected race conditions will not be su…
1933 pre_args += '-DTHREAD_SANITIZER=0'
1947 prog_flex = [prog_flex, '--wincompat']
1953 prog_flex += '-DYY_USE_CONST='
1960 prog_flex_cpp += '-D__STDC_VERSION__=199901'
1975 # old-bison compat. See discussion in
1978 prog_bison = [prog_bison, '-Wno-deprecated']
1988 pre_args += '-DMESA_SELINUX'
1992 ….require(not with_platform_android, error_message : 'Android requires the use of the backtrace lib…
1999 pre_args += '-DHAVE_LIBUNWIND'
2004 error('OSMesa gallium requires gallium softpipe or llvmpipe.')
2016 dep_wl_scanner = dependency('wayland-scanner', native: true)
2019 wl_scanner_arg = 'private-code'
2023 dep_wl_protocols = dependency('wayland-protocols', version : '>= 1.34')
2024 dep_wayland_client = dependency('wayland-client', version : '>=1.18')
2025 dep_wayland_server = dependency('wayland-server', version : '>=1.18')
2027 dep_wayland_egl = dependency('wayland-egl-backend', version : '>= 3')
2030 pre_args += '-DWL_HIDE_DEPRECATED'
2033 prefix : '#include <wayland-client.h>',
2035 pre_args += ['-DHAVE_WL_DISPATCH_QUEUE_TIMEOUT']
2039 prefix : '#include <wayland-client.h>',
2041 pre_args += ['-DHAVE_WL_CREATE_QUEUE_WITH_NAME']
2071 pre_args += ['-DHAVE_OPENMP']
2079 dep_xcb_xrandr = dependency('xcb-randr')
2087 dep_xcb_glx = dependency('xcb-glx', version : '>= 1.8.1')
2088 dep_xcb_shm = dependency('xcb-shm')
2096 dep_xcb_keysyms = dependency('xcb-keysyms', required : false)
2099 pre_args += '-DXCB_KEYSYMS_AVAILABLE'
2101 dep_x11_xcb = dependency('x11-xcb')
2102 dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8', required : with_x11_dri2)
2108 dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8', required : with_x11_dri2)
2110 dep_xcb_dri3 = dependency('xcb-dri3', version : '>= 1.13')
2111 dep_xcb_present = dependency('xcb-present', version : '>= 1.13')
2116 dep_xcb_shm = dependency('xcb-shm')
2117 dep_xcb_sync = dependency('xcb-sync')
2119 pre_args += '-DHAVE_X11_DRM'
2136 dep_xcb_xfixes = dependency('xcb-xfixes')
2139 dep_xcb_xrandr = dependency('xcb-randr')
2147 pre_args += '-DHAVE_DRI'
2150 pre_args += '-DHAVE_DRI2'
2153 pre_args += '-DHAVE_X11_DRI2'
2156 pre_args += '-DHAVE_DRI3_EXPLICIT_SYNC'
2159 pre_args += '-DHAVE_DRISW_KMS'
2162 if get_option('gallium-extra-hud')
2163 pre_args += '-DHAVE_GALLIUM_EXTRA_HUD=1'
2168 pre_args += '-DHAVE_LIBSENSORS=1'
2171 _shader_replacement = get_option('custom-shader-replacement')
2174 pre_args += '-DCUSTOM_SHADER_REPLACEMENT'
2182 pre_args += '-DHAVE_PERFETTO'
2194 pre_args += '-DHAVE_GPUVIS'
2209 'x11', 'xext', 'xfixes', 'x11-xcb', 'xcb',
2210 'xcb-glx >= 1.8.1']
2212 gl_priv_reqs += 'xcb-dri2 >= 1.8'
2224 gl_priv_libs += ['-lpthread', '-pthread']
2227 gl_priv_libs += '-lm'
2230 gl_priv_libs += '-ldl'
2236 gbm_priv_libs += '-ldl'
2245 symbols_check_args = ['--dumpbin', prog_dumpbin.full_path()]
2250 symbols_check_args = ['--nm', prog_nm.full_path()]
2255 gcc_lto_quirk = (cc.get_id() == 'gcc') ? ['-fno-lto'] : []
2269 sphinx = find_program('sphinx-build', version : '>= 4.3',
2270 required: get_option('html-docs'))
2346 vulkan_summary += {'Layers': get_option('vulkan-layers')}
2400 …gallium_summary += {'Off-screen rendering (OSMesa)': with_osmesa ? 'lib' + osmesa_lib_name : false}
2401 gallium_summary += {'HUD lm-sensors': dep_lmsensors.found()}