aboutsummaryrefslogtreecommitdiff
path: root/mesa/muon.patch
blob: 0e03943b80916c585eba61cc24d6c7d00a150a0e (plain)
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(