| 3 |
3 |
|
| 4 |
4 |
EAPI=8
|
| 5 |
5 |
|
| 6 |
|
LLVM_COMPAT=( {15..20} )
|
|
6 |
LLVM_COMPAT=( {18..20} )
|
| 7 |
7 |
LLVM_OPTIONAL=1
|
| 8 |
8 |
CARGO_OPTIONAL=1
|
| 9 |
9 |
PYTHON_COMPAT=( python3_{11..14} )
|
| ... | ... | |
| 13 |
13 |
MY_P="${P/_/-}"
|
| 14 |
14 |
|
| 15 |
15 |
CRATES="
|
| 16 |
|
syn@2.0.68
|
|
16 |
paste@1.0.14
|
| 17 |
17 |
proc-macro2@1.0.86
|
| 18 |
|
quote@1.0.33
|
|
18 |
quote@1.0.35
|
|
19 |
rustc-hash@2.1.1
|
|
20 |
syn@2.0.87
|
| 19 |
21 |
unicode-ident@1.0.12
|
| 20 |
|
paste@1.0.14
|
| 21 |
22 |
"
|
| 22 |
23 |
|
| 23 |
24 |
RUST_MIN_VER="1.78.0"
|
| ... | ... | |
| 36 |
37 |
SRC_URI="
|
| 37 |
38 |
https://archive.mesa3d.org/${MY_P}.tar.xz
|
| 38 |
39 |
"
|
| 39 |
|
KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-solaris"
|
|
40 |
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-solaris"
|
| 40 |
41 |
fi
|
| 41 |
42 |
|
| 42 |
43 |
# This should be {CARGO_CRATE_URIS//.crate/.tar.gz} to correspond to the wrap files,
|
| ... | ... | |
| 54 |
55 |
|
| 55 |
56 |
RADEON_CARDS="r300 r600 radeon radeonsi"
|
| 56 |
57 |
VIDEO_CARDS="${RADEON_CARDS}
|
| 57 |
|
d3d12 freedreno intel lavapipe lima nouveau nvk panfrost v3d vc4 virgl
|
|
58 |
asahi d3d12 freedreno intel lavapipe lima nouveau nvk panfrost v3d vc4 virgl
|
| 58 |
59 |
vivante vmware zink"
|
| 59 |
60 |
for card in ${VIDEO_CARDS}; do
|
| 60 |
61 |
IUSE_VIDEO_CARDS+=" video_cards_${card}"
|
| 61 |
62 |
done
|
| 62 |
63 |
|
| 63 |
64 |
IUSE="${IUSE_VIDEO_CARDS}
|
| 64 |
|
cpu_flags_x86_sse2 d3d9 debug +llvm
|
| 65 |
|
lm-sensors opencl +opengl osmesa +proprietary-codecs
|
| 66 |
|
test unwind vaapi valgrind vdpau vulkan
|
| 67 |
|
wayland +X xa +zstd"
|
|
65 |
cpu_flags_x86_sse2 debug +llvm
|
|
66 |
lm-sensors opencl +opengl +proprietary-codecs
|
|
67 |
sysprof test unwind vaapi valgrind vdpau vulkan
|
|
68 |
wayland +X +zstd"
|
| 68 |
69 |
RESTRICT="!test? ( test )"
|
| 69 |
70 |
REQUIRED_USE="
|
| 70 |
|
d3d9? (
|
| 71 |
|
|| (
|
| 72 |
|
video_cards_freedreno
|
| 73 |
|
video_cards_intel
|
| 74 |
|
video_cards_nouveau
|
| 75 |
|
video_cards_panfrost
|
| 76 |
|
video_cards_r300
|
| 77 |
|
video_cards_r600
|
| 78 |
|
video_cards_radeonsi
|
| 79 |
|
video_cards_vmware
|
| 80 |
|
video_cards_zink
|
| 81 |
|
)
|
| 82 |
|
)
|
| 83 |
71 |
llvm? ( ${LLVM_REQUIRED_USE} )
|
| 84 |
72 |
video_cards_lavapipe? ( llvm vulkan )
|
| 85 |
73 |
video_cards_radeon? ( x86? ( llvm ) amd64? ( llvm ) )
|
| ... | ... | |
| 87 |
75 |
video_cards_zink? ( vulkan opengl )
|
| 88 |
76 |
video_cards_nvk? ( vulkan video_cards_nouveau )
|
| 89 |
77 |
vdpau? ( X )
|
| 90 |
|
xa? ( X )
|
| 91 |
78 |
"
|
| 92 |
79 |
|
| 93 |
80 |
LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.121"
|
| ... | ... | |
| 129 |
116 |
wayland? ( >=dev-libs/wayland-1.18.0[${MULTILIB_USEDEP}] )
|
| 130 |
117 |
${LIBDRM_DEPSTRING}[video_cards_freedreno?,video_cards_intel?,video_cards_nouveau?,video_cards_vc4?,video_cards_vivante?,video_cards_vmware?,${MULTILIB_USEDEP}]
|
| 131 |
118 |
X? (
|
| 132 |
|
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
|
119 |
>=x11-libs/libX11-1.8[${MULTILIB_USEDEP}]
|
| 133 |
120 |
>=x11-libs/libxshmfence-1.1[${MULTILIB_USEDEP}]
|
| 134 |
121 |
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
| 135 |
122 |
>=x11-libs/libXxf86vm-1.1.3[${MULTILIB_USEDEP}]
|
| ... | ... | |
| 149 |
136 |
"
|
| 150 |
137 |
|
| 151 |
138 |
DEPEND="${RDEPEND}
|
|
139 |
sysprof? ( >=dev-util/sysprof-capture-49.0[${MULTILIB_USEDEP}] )
|
| 152 |
140 |
video_cards_d3d12? ( >=dev-util/directx-headers-1.614.1[${MULTILIB_USEDEP}] )
|
| 153 |
141 |
valgrind? ( dev-debug/valgrind )
|
| 154 |
|
wayland? ( >=dev-libs/wayland-protocols-1.38 )
|
|
142 |
wayland? ( >=dev-libs/wayland-protocols-1.41 )
|
| 155 |
143 |
X? (
|
| 156 |
144 |
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
| 157 |
145 |
x11-base/xorg-proto
|
| 158 |
146 |
)
|
| 159 |
147 |
"
|
|
148 |
|
|
149 |
CLC_DEPSTRING="
|
|
150 |
~dev-util/mesa_clc-${PV}[video_cards_asahi?,video_cards_panfrost?]
|
|
151 |
llvm-core/libclc[spirv(-)]
|
|
152 |
"
|
| 160 |
153 |
BDEPEND="
|
| 161 |
154 |
${PYTHON_DEPS}
|
| 162 |
155 |
opencl? (
|
| 163 |
|
>=dev-build/meson-1.7.0
|
| 164 |
|
>=dev-util/bindgen-0.71.0
|
|
156 |
>=dev-util/bindgen-0.71.1
|
| 165 |
157 |
${RUST_DEPEND}
|
| 166 |
158 |
)
|
| 167 |
|
>=dev-build/meson-1.4.1
|
|
159 |
>=dev-build/meson-1.7.0
|
| 168 |
160 |
app-alternatives/yacc
|
| 169 |
161 |
app-alternatives/lex
|
| 170 |
162 |
virtual/pkgconfig
|
| ... | ... | |
| 173 |
165 |
dev-python/packaging[\${PYTHON_USEDEP}]
|
| 174 |
166 |
dev-python/pyyaml[\${PYTHON_USEDEP}]
|
| 175 |
167 |
")
|
| 176 |
|
video_cards_intel? (
|
| 177 |
|
~dev-util/mesa_clc-${PV}
|
| 178 |
|
llvm-core/libclc[spirv(-)]
|
| 179 |
|
$(python_gen_any_dep "dev-python/ply[\${PYTHON_USEDEP}]")
|
| 180 |
|
)
|
|
168 |
video_cards_asahi? ( ${CLC_DEPSTRING} )
|
|
169 |
video_cards_intel? ( ${CLC_DEPSTRING} )
|
|
170 |
video_cards_panfrost? ( ${CLC_DEPSTRING} )
|
| 181 |
171 |
vulkan? (
|
| 182 |
172 |
dev-util/glslang
|
| 183 |
173 |
video_cards_nvk? (
|
| 184 |
|
>=dev-build/meson-1.7.0
|
| 185 |
|
>=dev-util/bindgen-0.71.0
|
|
174 |
>=dev-util/bindgen-0.71.1
|
| 186 |
175 |
>=dev-util/cbindgen-0.26.0
|
| 187 |
176 |
${RUST_DEPEND}
|
|
177 |
${CLC_DEPSTRING}
|
| 188 |
178 |
)
|
| 189 |
179 |
)
|
| 190 |
180 |
wayland? ( dev-util/wayland-scanner )
|
| ... | ... | |
| 193 |
183 |
QA_WX_LOAD="
|
| 194 |
184 |
x86? (
|
| 195 |
185 |
usr/lib/libgallium-*.so
|
| 196 |
|
usr/lib/libOSMesa.so.8.0.0
|
| 197 |
186 |
usr/lib/libGLX_mesa.so.0.0.0
|
| 198 |
187 |
)"
|
| 199 |
188 |
|
| ... | ... | |
| 216 |
205 |
|
| 217 |
206 |
pkg_pretend() {
|
| 218 |
207 |
if use vulkan; then
|
| 219 |
|
if ! use video_cards_d3d12 &&
|
|
208 |
if ! use video_cards_asahi &&
|
|
209 |
! use video_cards_d3d12 &&
|
| 220 |
210 |
! use video_cards_freedreno &&
|
| 221 |
211 |
! use video_cards_intel &&
|
| 222 |
212 |
! use video_cards_lavapipe &&
|
| ... | ... | |
| 226 |
216 |
! use video_cards_radeonsi &&
|
| 227 |
217 |
! use video_cards_v3d &&
|
| 228 |
218 |
! use video_cards_virgl; then
|
| 229 |
|
ewarn "Ignoring USE=vulkan since VIDEO_CARDS does not contain d3d12, freedreno, intel, lavapipe, nouveau, nvk, panfrost, radeonsi, v3d, or virgl"
|
|
219 |
ewarn "Ignoring USE=vulkan since VIDEO_CARDS does not contain asahi, d3d12, freedreno, intel, lavapipe, nouveau, nvk, panfrost, radeonsi, v3d, or virgl"
|
| 230 |
220 |
fi
|
| 231 |
221 |
fi
|
| 232 |
222 |
|
| ... | ... | |
| 251 |
241 |
fi
|
| 252 |
242 |
fi
|
| 253 |
243 |
|
| 254 |
|
if use xa; then
|
| 255 |
|
if ! use video_cards_freedreno &&
|
| 256 |
|
! use video_cards_intel &&
|
| 257 |
|
! use video_cards_nouveau &&
|
| 258 |
|
! use video_cards_vmware; then
|
| 259 |
|
ewarn "Ignoring USE=xa since VIDEO_CARDS does not contain freedreno, intel, nouveau, or vmware"
|
| 260 |
|
fi
|
| 261 |
|
fi
|
| 262 |
|
|
| 263 |
244 |
if ! use llvm; then
|
| 264 |
245 |
use opencl && ewarn "Ignoring USE=opencl since USE does not contain llvm"
|
| 265 |
246 |
fi
|
| 266 |
|
|
| 267 |
|
if use osmesa && ! use llvm; then
|
| 268 |
|
ewarn "OSMesa will be slow without enabling USE=llvm"
|
| 269 |
|
fi
|
| 270 |
247 |
}
|
| 271 |
248 |
|
| 272 |
249 |
python_check_deps() {
|
| 273 |
250 |
python_has_version -b ">=dev-python/mako-0.8.0[${PYTHON_USEDEP}]" &&
|
| 274 |
251 |
python_has_version -b "dev-python/packaging[${PYTHON_USEDEP}]" &&
|
| 275 |
252 |
python_has_version -b "dev-python/pyyaml[${PYTHON_USEDEP}]" || return 1
|
| 276 |
|
if use llvm && use vulkan && use video_cards_intel && use amd64; then
|
| 277 |
|
python_has_version -b "dev-python/ply[${PYTHON_USEDEP}]" || return 1
|
| 278 |
|
fi
|
| 279 |
253 |
}
|
| 280 |
254 |
|
| 281 |
255 |
pkg_setup() {
|
| ... | ... | |
| 324 |
298 |
use wayland && platforms+=",wayland"
|
| 325 |
299 |
emesonargs+=(-Dplatforms=${platforms#,})
|
| 326 |
300 |
|
| 327 |
|
if use video_cards_freedreno ||
|
| 328 |
|
use video_cards_intel || # crocus i915 iris
|
| 329 |
|
use video_cards_nouveau ||
|
| 330 |
|
use video_cards_panfrost ||
|
| 331 |
|
use video_cards_r300 ||
|
| 332 |
|
use video_cards_r600 ||
|
| 333 |
|
use video_cards_radeonsi ||
|
| 334 |
|
use video_cards_vmware || # svga
|
| 335 |
|
use video_cards_zink; then
|
| 336 |
|
emesonargs+=($(meson_use d3d9 gallium-nine))
|
| 337 |
|
else
|
| 338 |
|
emesonargs+=(-Dgallium-nine=false)
|
| 339 |
|
fi
|
| 340 |
|
|
| 341 |
301 |
if use video_cards_d3d12 ||
|
| 342 |
302 |
use video_cards_nouveau ||
|
| 343 |
303 |
use video_cards_r600 ||
|
| ... | ... | |
| 363 |
323 |
emesonargs+=(-Dgallium-vdpau=disabled)
|
| 364 |
324 |
fi
|
| 365 |
325 |
|
| 366 |
|
if use video_cards_freedreno ||
|
| 367 |
|
use video_cards_intel ||
|
| 368 |
|
use video_cards_nouveau ||
|
| 369 |
|
use video_cards_vmware; then
|
| 370 |
|
emesonargs+=($(meson_feature xa gallium-xa))
|
| 371 |
|
else
|
| 372 |
|
emesonargs+=(-Dgallium-xa=disabled)
|
| 373 |
|
fi
|
| 374 |
|
|
| 375 |
326 |
gallium_enable !llvm softpipe
|
| 376 |
327 |
gallium_enable llvm llvmpipe
|
|
328 |
gallium_enable video_cards_asahi asahi
|
| 377 |
329 |
gallium_enable video_cards_d3d12 d3d12
|
| 378 |
330 |
gallium_enable video_cards_freedreno freedreno
|
| 379 |
331 |
gallium_enable video_cards_intel crocus i915 iris
|
| ... | ... | |
| 405 |
357 |
fi
|
| 406 |
358 |
|
| 407 |
359 |
if use vulkan; then
|
|
360 |
vulkan_enable video_cards_asahi asahi
|
| 408 |
361 |
vulkan_enable video_cards_d3d12 microsoft-experimental
|
| 409 |
362 |
vulkan_enable video_cards_freedreno freedreno
|
| 410 |
363 |
vulkan_enable video_cards_intel intel intel_hasvk
|
| ... | ... | |
| 442 |
395 |
emesonargs+=($(meson_feature video_cards_intel intel-rt))
|
| 443 |
396 |
fi
|
| 444 |
397 |
|
|
398 |
if use video_cards_asahi ||
|
|
399 |
use video_cards_intel ||
|
|
400 |
use video_cards_nvk ||
|
|
401 |
use video_cards_panfrost; then
|
|
402 |
emesonargs+=(-Dmesa-clc=system)
|
|
403 |
fi
|
|
404 |
|
|
405 |
if use video_cards_asahi ||
|
|
406 |
use video_cards_panfrost; then
|
|
407 |
emesonargs+=(-Dprecomp-compiler=system)
|
|
408 |
fi
|
|
409 |
|
| 445 |
410 |
use debug && EMESON_BUILDTYPE=debug
|
| 446 |
411 |
|
| 447 |
412 |
emesonargs+=(
|
| 448 |
413 |
$(meson_use test build-tests)
|
| 449 |
|
-Dshared-glapi=enabled
|
| 450 |
414 |
-Dlegacy-x11=dri2
|
| 451 |
415 |
-Dexpat=enabled
|
| 452 |
416 |
$(meson_use opengl)
|
| ... | ... | |
| 457 |
421 |
$(meson_feature opengl egl)
|
| 458 |
422 |
$(meson_feature llvm)
|
| 459 |
423 |
$(meson_feature lm-sensors lmsensors)
|
| 460 |
|
$(meson_use osmesa)
|
| 461 |
424 |
$(meson_feature unwind libunwind)
|
| 462 |
425 |
$(meson_feature zstd)
|
|
426 |
$(meson_use llvm amd-use-llvm)
|
|
427 |
$(meson_use sysprof)
|
| 463 |
428 |
$(meson_use cpu_flags_x86_sse2 sse2)
|
| 464 |
|
-Dmesa-clc=$(usex video_cards_intel system auto)
|
| 465 |
429 |
-Dvalgrind=$(usex valgrind auto disabled)
|
| 466 |
430 |
-Dvideo-codecs=$(usex proprietary-codecs "all" "all_free")
|
| 467 |
431 |
-Dgallium-drivers=$(driver_list "${GALLIUM_DRIVERS[*]}")
|