1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
--- 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(
|