Signed-off-by: Michał Górny <mgo...@gentoo.org>
---
 media-libs/mesa/mesa-24.0.0.ebuild | 53 +++++++-----------------------
 media-libs/mesa/mesa-9999.ebuild   | 53 +++++++-----------------------
 2 files changed, 22 insertions(+), 84 deletions(-)

diff --git a/media-libs/mesa/mesa-24.0.0.ebuild 
b/media-libs/mesa/mesa-24.0.0.ebuild
index 7d7f3b5ed165..5f3a7985bdf5 100644
--- a/media-libs/mesa/mesa-24.0.0.ebuild
+++ b/media-libs/mesa/mesa-24.0.0.ebuild
@@ -3,9 +3,10 @@
 
 EAPI=8
 
+LLVM_COMPAT=( {15..17} )
 PYTHON_COMPAT=( python3_{10..12} )
 
-inherit llvm meson-multilib python-any-r1 linux-info
+inherit llvm-r1 meson-multilib python-any-r1 linux-info
 
 MY_P="${P/_/-}"
 
@@ -64,6 +65,13 @@ RDEPEND="
        >=sys-libs/zlib-1.2.8[${MULTILIB_USEDEP}]
        unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
        llvm? (
+               $(llvm_gen_dep "
+                       
sys-devel/llvm:\${LLVM_SLOT}[llvm_targets_AMDGPU(+),${MULTILIB_USEDEP}]
+                       opencl? (
+                               dev-util/spirv-llvm-translator:\${LLVM_SLOT}
+                               
sys-devel/clang:\${LLVM_SLOT}[llvm_targets_AMDGPU(+),${MULTILIB_USEDEP}]
+                       )
+               ")
                video_cards_radeonsi? (
                        virtual/libelf:0=[${MULTILIB_USEDEP}]
                )
@@ -109,37 +117,6 @@ RDEPEND="${RDEPEND}
        video_cards_radeonsi? ( ${LIBDRM_DEPSTRING}[video_cards_amdgpu] )
 "
 
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling one than more slot
-# simultaneously.
-#
-# How to use it:
-# 1. Specify LLVM_MAX_SLOT (inclusive), e.g. 17.
-# 2. Specify LLVM_MIN_SLOT (inclusive), e.g. 15.
-LLVM_MAX_SLOT="17"
-LLVM_MIN_SLOT="15"
-LLVM_USE_DEPS="llvm_targets_AMDGPU(+),${MULTILIB_USEDEP}"
-PER_SLOT_DEPSTR="
-       (
-               !opencl? ( sys-devel/llvm:@SLOT@[${LLVM_USE_DEPS}] )
-               opencl? ( sys-devel/clang:@SLOT@[${LLVM_USE_DEPS}] )
-               opencl? ( dev-util/spirv-llvm-translator:@SLOT@ )
-       )
-"
-LLVM_DEPSTR="
-       || (
-               $(for ((slot=LLVM_MAX_SLOT; slot>=LLVM_MIN_SLOT; slot--)); do
-                       echo "${PER_SLOT_DEPSTR//@SLOT@/${slot}}"
-               done)
-       )
-       !opencl? ( <sys-devel/llvm-$((LLVM_MAX_SLOT + 1)):=[${LLVM_USE_DEPS}] )
-       opencl? ( <sys-devel/clang-$((LLVM_MAX_SLOT + 1)):=[${LLVM_USE_DEPS}] )
-"
-RDEPEND="${RDEPEND}
-       llvm? ( ${LLVM_DEPSTR} )
-"
-unset LLVM_MIN_SLOT {LLVM,PER_SLOT}_DEPSTR
-
 DEPEND="${RDEPEND}
        video_cards_d3d12? ( 
>=dev-util/directx-headers-1.611.0[${MULTILIB_USEDEP}] )
        valgrind? ( dev-debug/valgrind )
@@ -185,14 +162,6 @@ x86? (
        usr/lib/libGLX_mesa.so.0.0.0
 )"
 
-llvm_check_deps() {
-       if use opencl; then
-               has_version "sys-devel/clang:${LLVM_SLOT}[${LLVM_USE_DEPS}]" || 
return 1
-               has_version "dev-util/spirv-llvm-translator:${LLVM_SLOT}" || 
return 1
-       fi
-       has_version "sys-devel/llvm:${LLVM_SLOT}[${LLVM_USE_DEPS}]"
-}
-
 pkg_pretend() {
        if use vulkan; then
                if ! use video_cards_d3d12 &&
@@ -269,7 +238,7 @@ pkg_setup() {
        fi
 
        if use llvm; then
-               llvm_pkg_setup
+               llvm-r1_pkg_setup
        fi
        python-any-r1_pkg_setup
 }
@@ -363,7 +332,7 @@ multilib_src_configure() {
        fi
 
        if use llvm && use opencl; then
-               PKG_CONFIG_PATH="$(get_llvm_prefix 
"${LLVM_MAX_SLOT}")/$(get_libdir)/pkgconfig"
+               PKG_CONFIG_PATH="$(get_llvm_prefix)/$(get_libdir)/pkgconfig"
                # See 
https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/rusticl.rst
                emesonargs+=(
                        $(meson_native_true gallium-rusticl)
diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index 7d7f3b5ed165..5f3a7985bdf5 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -3,9 +3,10 @@
 
 EAPI=8
 
+LLVM_COMPAT=( {15..17} )
 PYTHON_COMPAT=( python3_{10..12} )
 
-inherit llvm meson-multilib python-any-r1 linux-info
+inherit llvm-r1 meson-multilib python-any-r1 linux-info
 
 MY_P="${P/_/-}"
 
@@ -64,6 +65,13 @@ RDEPEND="
        >=sys-libs/zlib-1.2.8[${MULTILIB_USEDEP}]
        unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
        llvm? (
+               $(llvm_gen_dep "
+                       
sys-devel/llvm:\${LLVM_SLOT}[llvm_targets_AMDGPU(+),${MULTILIB_USEDEP}]
+                       opencl? (
+                               dev-util/spirv-llvm-translator:\${LLVM_SLOT}
+                               
sys-devel/clang:\${LLVM_SLOT}[llvm_targets_AMDGPU(+),${MULTILIB_USEDEP}]
+                       )
+               ")
                video_cards_radeonsi? (
                        virtual/libelf:0=[${MULTILIB_USEDEP}]
                )
@@ -109,37 +117,6 @@ RDEPEND="${RDEPEND}
        video_cards_radeonsi? ( ${LIBDRM_DEPSTRING}[video_cards_amdgpu] )
 "
 
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling one than more slot
-# simultaneously.
-#
-# How to use it:
-# 1. Specify LLVM_MAX_SLOT (inclusive), e.g. 17.
-# 2. Specify LLVM_MIN_SLOT (inclusive), e.g. 15.
-LLVM_MAX_SLOT="17"
-LLVM_MIN_SLOT="15"
-LLVM_USE_DEPS="llvm_targets_AMDGPU(+),${MULTILIB_USEDEP}"
-PER_SLOT_DEPSTR="
-       (
-               !opencl? ( sys-devel/llvm:@SLOT@[${LLVM_USE_DEPS}] )
-               opencl? ( sys-devel/clang:@SLOT@[${LLVM_USE_DEPS}] )
-               opencl? ( dev-util/spirv-llvm-translator:@SLOT@ )
-       )
-"
-LLVM_DEPSTR="
-       || (
-               $(for ((slot=LLVM_MAX_SLOT; slot>=LLVM_MIN_SLOT; slot--)); do
-                       echo "${PER_SLOT_DEPSTR//@SLOT@/${slot}}"
-               done)
-       )
-       !opencl? ( <sys-devel/llvm-$((LLVM_MAX_SLOT + 1)):=[${LLVM_USE_DEPS}] )
-       opencl? ( <sys-devel/clang-$((LLVM_MAX_SLOT + 1)):=[${LLVM_USE_DEPS}] )
-"
-RDEPEND="${RDEPEND}
-       llvm? ( ${LLVM_DEPSTR} )
-"
-unset LLVM_MIN_SLOT {LLVM,PER_SLOT}_DEPSTR
-
 DEPEND="${RDEPEND}
        video_cards_d3d12? ( 
>=dev-util/directx-headers-1.611.0[${MULTILIB_USEDEP}] )
        valgrind? ( dev-debug/valgrind )
@@ -185,14 +162,6 @@ x86? (
        usr/lib/libGLX_mesa.so.0.0.0
 )"
 
-llvm_check_deps() {
-       if use opencl; then
-               has_version "sys-devel/clang:${LLVM_SLOT}[${LLVM_USE_DEPS}]" || 
return 1
-               has_version "dev-util/spirv-llvm-translator:${LLVM_SLOT}" || 
return 1
-       fi
-       has_version "sys-devel/llvm:${LLVM_SLOT}[${LLVM_USE_DEPS}]"
-}
-
 pkg_pretend() {
        if use vulkan; then
                if ! use video_cards_d3d12 &&
@@ -269,7 +238,7 @@ pkg_setup() {
        fi
 
        if use llvm; then
-               llvm_pkg_setup
+               llvm-r1_pkg_setup
        fi
        python-any-r1_pkg_setup
 }
@@ -363,7 +332,7 @@ multilib_src_configure() {
        fi
 
        if use llvm && use opencl; then
-               PKG_CONFIG_PATH="$(get_llvm_prefix 
"${LLVM_MAX_SLOT}")/$(get_libdir)/pkgconfig"
+               PKG_CONFIG_PATH="$(get_llvm_prefix)/$(get_libdir)/pkgconfig"
                # See 
https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/rusticl.rst
                emesonargs+=(
                        $(meson_native_true gallium-rusticl)
-- 
2.43.0


Reply via email to