endif
endif
-prog_pkgconfig = find_program('pkg-config')
-
_vdpau = get_option('gallium-vdpau')
if not system_has_kms_drm
if _vdpau == 'true'
if _vdpau != 'false'
dep_vdpau = dependency('vdpau', version : '>= 1.1', required : _vdpau == 'true')
if dep_vdpau.found()
- dep_vdpau = declare_dependency(
- compile_args : run_command(prog_pkgconfig, ['vdpau', '--cflags']).stdout().split()
- )
+ dep_vdpau = dep_vdpau.partial_dependency(compile_args : true)
with_gallium_vdpau = true
endif
endif
if _va != 'false'
dep_va = dependency('libva', version : '>= 0.38.0', required : _va == 'true')
if dep_va.found()
- dep_va_headers = declare_dependency(
- compile_args : run_command(prog_pkgconfig, ['libva', '--cflags']).stdout().split()
- )
+ dep_va_headers = dep_va.partial_dependency(compile_args : true)
with_gallium_va = true
endif
endif
pre_args += '-D__EXTENSIONS__'
elif host_machine.system() == 'windows'
pre_args += [
- '-D_WINDOWS', '-D_WIN32_WINNT=0x0601', '-D_WINVER=0x0601',
+ '-D_WINDOWS', '-D_WIN32_WINNT=0x0601', '-DWINVER=0x0601',
'-DPIPE_SUBSYSTEM_WINDOWS_USER',
'-D_USE_MATH_DEFINES', # XXX: scons doesn't use this for mingw
]
'-fno-math-errno',
'-fno-trapping-math',
'-Qunused-arguments',
+ # Some classes use custom new operator which zeroes memory, however
+ # gcc does aggressive dead-store elimination which threats all writes
+ # to the memory before the constructor as "dead stores".
+ # For now we disable this optimization.
+ '-flifetime-dse=1',
]
# MinGW chokes on format specifiers and I can't get it all working
if not (cc.get_id() == 'gcc' and host_machine.system() == 'windows')
endif
endforeach
-foreach f : ['strtof', 'mkostemp', 'timespec_get', 'memfd_create', 'random_r', 'flock', 'strtok_r']
+foreach f : ['strtof', 'mkostemp', 'timespec_get', 'memfd_create', 'random_r', 'flock', 'strtok_r', 'getrandom']
if cc.has_function(f)
pre_args += '-DHAVE_@0@'.format(f.to_upper())
endif
endif
_llvm = get_option('llvm')
-# The cmake method will never find libllvm.so|dylib; this is fine for windows
-# because llvm doesn't support libllvm.dll
-_llvm_method = 'config-tool'
-if (meson.version().version_compare('>= 0.51.0') and
- host_machine.system() == 'windows')
- _llvm_method = 'cmake'
+# the cmake method can only link statically, so don't attempt to use it if we
+# want to link dynamically. Before 0.54.0 meson will try cmake even when shared
+# linking is requested, so we need to force the config-tool method to be used
+# in that case, but in 0.54.0 meson won't try the cmake method if shared
+# linking is requested.
+_llvm_method = 'auto'
+if meson.version().version_compare('< 0.54.0') and _shared_llvm
+ _llvm_method = 'config-tool'
endif
dep_llvm = null_dep
dep_wayland_server = dependency('wayland-server', version : '>=1.11')
if with_egl
dep_wayland_egl = dependency('wayland-egl-backend', version : '>= 3')
- dep_wayland_egl_headers = declare_dependency(
- compile_args : run_command(prog_pkgconfig, ['wayland-egl-backend', '--cflags']).stdout().split())
+ dep_wayland_egl_headers = dep_wayland_egl.partial_dependency(compile_args : true)
endif
wayland_dmabuf_xml = join_paths(
dep_wl_protocols.get_pkgconfig_variable('pkgdatadir'), 'unstable',