blob: d4e561bf6846046ec292f4b2466abe45392fe0ff (
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# Maintainer: Ali Mohammad Pur <totally@fakegmail.ch>
pkgname=('angle')
pkgver=7258
pkgrel=6
pkgdesc="A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android."
arch=('x86_64')
url="https://chromium.googlesource.com/angle/angle"
license=('BSD-3-Clause')
depends=('zlib' 'libglvnd' 'freetype2' 'expat' 'libpng' 'libjpeg-turbo' 'fontconfig' 'harfbuzz' 'gcc-libs' 'libwebp' 'glibc')
makedepends=('git' 'python' 'procps-ng' 'ninja' 'gn' 'patchelf' 'pciutils')
provides=(angle)
conflicts=(angle)
source=(
"git+$url#branch=chromium/$pkgver"
"angle.pc"
"vk.patch"
"gclient_args.gni"
"build::git+https://chromium.googlesource.com/chromium/src/build.git#commit=169fcf699b64d2d5e75a391beaec8a7ad6e41a7f"
"testing::git+https://chromium.googlesource.com/chromium/src/testing#commit=0d5210a4b1978e7e2c6b8623c719dff0a0994a8f"
"abseil-cpp::git+https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp#commit=e3d58ba1a2a04f85225c3c04fa4603bb64399b2c"
"astc-encoder::git+https://chromium.googlesource.com/external/github.com/ARM-software/astc-encoder#commit=2319d9c4d4af53a7fc7c52985e264ce6e8a02a9b"
"EGL-Registry::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry#commit=7dea2ed79187cd13f76183c4b9100159b9e3e071"
"libdrm::git+https://chromium.googlesource.com/chromiumos/third_party/libdrm.git#commit=ad78bb591d02162d3b90890aa4d0a238b2a37cde"
"jsoncpp::git+https://chromium.googlesource.com/chromium/src/third_party/jsoncpp#commit=f62d44704b4da6014aa231cfc116e7fd29617d2a"
"jsoncpp_upstream::git+https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git"
"OpenGL-Registry::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry#commit=200cea4030cb49d3e40677379e6368a5f0e8c27b"
"rapidjson::git+https://chromium.googlesource.com/external/github.com/Tencent/rapidjson#commit=781a4e667d84aeedbeb8184b7b62425ea66ec59f"
"spirv-headers::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers#commit=2a611a970fdbc41ac2e3e328802aed9985352dca"
"spirv-tools::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools#commit=108b19e5c6979f496deffad4acbe354237afa7d3"
"vulkan-headers::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers#commit=10739e8e00a7b6f74d22dd0a547f1406ff1f5eb9"
"vulkan-loader::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader#commit=c8a2c8c9164a58ce71c1c77104e28e8de724539e"
"vulkan-tools::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools#commit=e3fc64396755191b3c51e5c57d0454872e7fa487"
"vulkan_memory_allocator::git+https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator#commit=56300b29fbfcc693ee6609ddad3fdd5b7a449a21"
"zlib::git+https://chromium.googlesource.com/chromium/src/third_party/zlib#commit=4028ebf8710ee39d2286cb0f847f9b95c59f84d8"
)
sha256sums=(
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
)
prepare() {
rm -fr angle/build; ln -s "${srcdir}/build" angle/build
rm -fr angle/testing; ln -s "${srcdir}/testing" angle/testing
rm -fr angle/third_party/abseil-cpp; ln -s "${srcdir}/abseil-cpp" angle/third_party/abseil-cpp
rm -fr angle/third_party/astc-encoder/src; ln -s "${srcdir}/astc-encoder" angle/third_party/astc-encoder/src
rm -fr angle/third_party/EGL-Registry/src; ln -s "${srcdir}/EGL-Registry" angle/third_party/EGL-Registry/src
rm -fr angle/third_party/libdrm/src; ln -s "${srcdir}/libdrm" angle/third_party/libdrm/src
rm -fr angle/third_party/jsoncpp; ln -s "${srcdir}/jsoncpp" angle/third_party/jsoncpp
rm -fr angle/third_party/jsoncpp/source; ln -s "${srcdir}/jsoncpp_upstream" angle/third_party/jsoncpp/source
rm -fr angle/third_party/OpenGL-Registry/src; ln -s "${srcdir}/OpenGL-Registry" angle/third_party/OpenGL-Registry/src
rm -fr angle/third_party/rapidjson/src; ln -s "${srcdir}/rapidjson" angle/third_party/rapidjson/src
rm -fr angle/third_party/spirv-headers/src; ln -s "${srcdir}/spirv-headers" angle/third_party/spirv-headers/src
rm -fr angle/third_party/spirv-tools/src; ln -s "${srcdir}/spirv-tools" angle/third_party/spirv-tools/src
rm -fr angle/third_party/vulkan-headers/src; ln -s "${srcdir}/vulkan-headers" angle/third_party/vulkan-headers/src
rm -fr angle/third_party/vulkan-loader/src; ln -s "${srcdir}/vulkan-loader" angle/third_party/vulkan-loader/src
rm -fr angle/third_party/vulkan-tools/src; ln -s "${srcdir}/vulkan-tools" angle/third_party/vulkan-tools/src
rm -fr angle/third_party/vulkan_memory_allocator; ln -s "${srcdir}/vulkan_memory_allocator" angle/third_party/vulkan_memory_allocator
rm -fr angle/third_party/zlib; ln -s "${srcdir}/zlib" angle/third_party/zlib
cp gclient_args.gni angle/build/config
cd angle
patch src/libANGLE/renderer/vulkan/vk_cache_utils.cpp <"$srcdir/vk.patch"
gn gen out/Release --args="
angle_build_tests=false
angle_enable_abseil=true
angle_enable_renderdoc=false
angle_enable_swiftshader=false
angle_enable_vulkan=true
angle_enable_wgpu=false
angle_expose_non_conformant_extensions_and_versions=true
angle_use_wayland=true
angle_use_x11=false
build_angle_deqp_tests=false
build_with_chromium=false
chrome_pgo_phase=0
is_cfi=false
is_component_build=false
is_clang=false
is_debug=false
is_official_build=true
treat_warnings_as_errors=false
use_custom_libcxx=false
use_safe_libstdcxx=true
use_siso=false
use_sysroot=false
"
}
build() {
cd angle
ninja -C ./out/Release
}
package() {
cd "$srcdir/angle"
# License
install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
# Library
libs=(
libEGL
libEGL_vulkan_secondaries
libGLESv1_CM
libGLESv2
libGLESv2_vulkan_secondaries
libGLESv2_with_capture
libVkICD_mock_icd
libfeature_support
)
for lib in "${libs[@]}"; do
patchelf --set-rpath "/opt/angle/usr/lib" "out/Release/$lib.so"
install -D -m644 "out/Release/$lib.so" "$pkgdir/opt/angle/usr/lib/$lib.so"
done
# Headers
find include -type f -and -name "*.h" -exec install -v -D -m644 {} "$pkgdir/opt/angle/usr/"{} \; -print
install -D -m644 "$srcdir/angle.pc" "$pkgdir/usr/lib/pkgconfig/angle.pc"
git reset --hard origin/main
}
|