--- mesa-26.1.2-orig/meson.build +++ mesa-26.1.2/meson.build @@ -1895,16 +1895,10 @@ .disable_auto_if(host_machine.system() == 'windows') \ .allowed() -dep_llvm = dependency( - 'llvm', - method : host_machine.system() == 'windows' ? 'auto' : 'config-tool', - version : _llvm_version, - modules : llvm_modules, - optional_modules : llvm_optional_modules, - required : with_llvm, - static : not _shared_llvm, - fallback : ['llvm', 'dep_llvm'], - include_type : 'system', +dep_llvm = declare_dependency( + include_directories: include_directories('@APKGLLVMINCLUDEDIR@'), + link_args: ['@APKGLLVMLIBS@', '@APKGLLVMLDFLAGS@'], + version: '@APKGLLVMVERSION@', ) if dep_llvm.found() pre_args += '-DMESA_LLVM_VERSION_STRING="@0@"'.format(dep_llvm.version()) @@ -1928,7 +1922,7 @@ # ensure that linking works. Note that Win32 compilers does handle mismatching RTTI # without issues, so only apply this for other compilers. if dep_llvm.type_name() == 'internal' - _llvm_rtti = subproject('llvm').get_variable('has_rtti', true) + _llvm_rtti = true else # The CMake finder will return 'ON', the llvm-config will return 'YES' _llvm_rtti = ['ON', 'YES'].contains(dep_llvm.get_variable(cmake : 'LLVM_ENABLE_RTTI', configtool: 'has-rtti')) @@ -1992,7 +1986,7 @@ dep_clang = null_dep if with_clc - llvm_libdir = dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir') + llvm_libdir = '/usr/lib' dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false) @@ -2162,7 +2156,16 @@ pre_args += ['-DHAVE_WL_CREATE_QUEUE_WITH_NAME'] endif # This can be renamed just `wayland` when we require at least 1.8 - mod_wl = import('unstable-wayland') + wayland_protocols_dep = dependency('wayland-protocols') + wayland_protocols_datadir = wayland_protocols_dep.get_pkgconfig_variable('pkgdatadir') + wayland_scanner = find_program('wayland-scanner') + + gen_client_header = generator(wayland_scanner, + output: '@BASENAME@-client-protocol.h', + arguments: ['client-header', '@INPUT@', '@OUTPUT@']) + gen_private_code = generator(wayland_scanner, + output: '@BASENAME@-protocol.c', + arguments: ['private-code', '@INPUT@', '@OUTPUT@']) endif # Even if we find OpenMP, Gitlab CI fails to link with gcc/i386 and clang/anyarch. --- mesa-26.1.2-orig/src/loader/meson.build +++ mesa-26.1.2/src/loader/meson.build @@ -5,17 +5,17 @@ if with_platform_wayland wp_protos = { - 'fifo-v1': mod_wl.find_protocol('fifo', state : 'staging', version : 1), - 'commit-timing-v1': mod_wl.find_protocol('commit-timing', state : 'staging', version : 1), - 'linux-dmabuf-unstable-v1': mod_wl.find_protocol('linux-dmabuf', state : 'unstable', version : 1), - 'presentation-time': mod_wl.find_protocol('presentation-time'), - 'tearing-control-v1': mod_wl.find_protocol('tearing-control', state : 'staging', version : 1), - 'linux-drm-syncobj-v1': mod_wl.find_protocol('linux-drm-syncobj', state : 'staging', version : 1), - 'color-management-v1': mod_wl.find_protocol('color-management', state : 'staging', version : 1) + 'fifo-v1': join_paths(wayland_protocols_datadir, 'staging/fifo/fifo-v1.xml'), + 'commit-timing-v1': join_paths(wayland_protocols_datadir, 'staging/commit-timing/commit-timing-v1.xml'), + 'linux-dmabuf-unstable-v1': join_paths(wayland_protocols_datadir, 'unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml'), + 'presentation-time': join_paths(wayland_protocols_datadir, 'stable/presentation-time/presentation-time.xml'), + 'tearing-control-v1': join_paths(wayland_protocols_datadir, 'staging/tearing-control/tearing-control-v1.xml'), + 'linux-drm-syncobj-v1': join_paths(wayland_protocols_datadir, 'staging/linux-drm-syncobj/linux-drm-syncobj-v1.xml'), + 'color-management-v1': join_paths(wayland_protocols_datadir, 'staging/color-management/color-management-v1.xml') } wp_files = {} foreach name, xml : wp_protos - wp_files += {name : mod_wl.scan_xml(xml, include_core_only : false)} + wp_files += {name : [gen_client_header.process(xml), gen_private_code.process(xml)]} endforeach libloader_wayland_helper = static_library(