with_gles1 = get_option('gles1')
with_gles2 = get_option('gles2')
+if host_machine.system() == 'windows'
+ if with_gles1 == 'auto'
+ with_gles1 = 'false'
+ endif
+ if with_gles2 == 'auto'
+ with_gles2 = 'false'
+ endif
+endif
with_opengl = get_option('opengl')
-with_any_opengl = with_opengl or with_gles1 or with_gles2
-# Only build shared_glapi if at least one OpenGL API is enabled
-with_shared_glapi = get_option('shared-glapi') and with_any_opengl
-
+with_shared_glapi = get_option('shared-glapi')
# shared-glapi is required if at least two OpenGL APIs are being built
if not with_shared_glapi
- if ((with_gles1 and with_gles2) or (with_gles1 and with_opengl)
- or (with_gles2 and with_opengl))
+ if ((with_gles1 == 'true' and with_gles2 == 'true') or
+ (with_gles1 == 'true' and with_opengl) or
+ (with_gles2 == 'true' and with_opengl))
error('shared-glapi required for building two or more of OpenGL, OpenGL ES 1.x, OpenGL ES 2.x')
endif
+ with_gles1 = 'false'
+ with_gles2 = 'false'
endif
# We require OpenGL for OpenGL ES
-if (with_gles1 or with_gles2) and not with_opengl
- error('building OpenGL ES without OpenGL is not supported.')
+if not with_opengl
+ if (with_gles1 == 'true' or with_gles2 == 'true') and not with_opengl
+ error('building OpenGL ES without OpenGL is not supported.')
+ endif
+ with_gles1 = 'false'
+ with_gles2 = 'false'
endif
+with_gles1 = with_gles1 != 'false'
+with_gles2 = with_gles2 != 'false'
+with_any_opengl = with_opengl or with_gles1 or with_gles2
+# Only build shared_glapi if at least one OpenGL API is enabled
+with_shared_glapi = get_option('shared-glapi') and with_any_opengl
+
system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly', 'linux'].contains(host_machine.system())
dri_drivers = get_option('dri-drivers')
if get_option('power8') != 'false'
# on old versions of meson the cpu family would return as ppc64le on little
# endian power8, this was changed in 0.48 such that the family would always
- # be ppc64 regardless of endianness, and the the machine.endian() value
+ # be ppc64 regardless of endianness, and then the machine.endian() value
# should be checked. Since we support versions < 0.48 we need to use
# startswith.
if host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
pre_args += '-DDEBUG'
endif
-if get_option('shader-cache')
- pre_args += '-DENABLE_SHADER_CACHE'
-elif with_amd_vk
+with_shader_cache = false
+_shader_cache = get_option('shader-cache')
+if _shader_cache != 'false'
+ if host_machine.system() == 'windows'
+ if _shader_cache == 'true'
+ error('Shader Cache does not currently work on Windows')
+ endif
+ else
+ pre_args += '-DENABLE_SHADER_CACHE'
+ with_shader_cache = true
+ endif
+endif
+if with_amd_vk and not with_shader_cache
error('Radv requires shader cache support')
endif
pre_args += '-DHAVE_DL_ITERATE_PHDR'
elif with_intel_vk
error('Intel "Anvil" Vulkan driver requires the dl_iterate_phdr function')
-elif with_dri_i965 and get_option('shader-cache')
+elif with_dri_i965 and with_shader_cache
error('Intel i965 GL driver requires dl_iterate_phdr when built with shader caching.')
endif
endif
dep_expat = dependency('expat')
# this only exists on linux so either this is linux and it will be found, or
-# its not linux and and wont
+# it's not linux and wont
dep_m = cc.find_library('m', required : false)
-# Check for libdrm. various drivers have different libdrm version requirements,
+# Check for libdrm. Various drivers have different libdrm version requirements,
# but we always want to use the same version for all libdrm modules. That means
# even if driver foo requires 2.4.0 and driver bar requires 2.4.3, if foo and
# bar are both on use 2.4.3 for both of them
with_gallium_opencl or _llvm == 'true'
),
static : not _shared_llvm,
+ method : 'config-tool',
)
with_llvm = dep_llvm.found()
endif
pkg = import('pkgconfig')
+prog_nm = find_program('nm', required : false)
env_test = environment()
-env_test.set('NM', find_program('nm').path())
+if prog_nm.found()
+ env_test.set('NM', prog_nm.path())
+endif
# This quirk needs to be applied to sources with functions defined in assembly
# as GCC LTO drops them. See: https://bugs.freedesktop.org/show_bug.cgi?id=109391