From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Cc: "Michał Górny" <mgorny@gentoo.org>
Subject: [gentoo-dev] [PATCH 7/8] media-libs/mesa: Migrate to llvm-r1
Date: Wed, 7 Feb 2024 21:11:42 +0100 [thread overview]
Message-ID: <20240207203515.17640-8-mgorny@gentoo.org> (raw)
In-Reply-To: <20240207203515.17640-1-mgorny@gentoo.org>
Signed-off-by: Michał Górny <mgorny@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
next prev parent reply other threads:[~2024-02-07 20:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-07 20:11 [gentoo-dev] [PATCH 0/8] llvm-r1.eclass + llvm-utils.eclass: new eclasses to sort out LLVM mess Michał Górny
2024-02-07 20:11 ` [gentoo-dev] [PATCH 1/8] llvm-utils.eclass: Introduce an eclass for common helpers Michał Górny
2024-02-07 20:11 ` [gentoo-dev] [PATCH 2/8] llvm-utils.eclass: Split out PATH prepending logic Michał Górny
2024-02-07 20:11 ` [gentoo-dev] [PATCH 3/8] llvm-utils.eclass: Fix llvm_prepend_path to avoid duplicates Michał Górny
2024-02-08 19:06 ` [gentoo-dev] [PATCH] " Michał Górny
2024-02-07 20:11 ` [gentoo-dev] [PATCH 4/8] profiles: Introduce LLVM_SLOT USE_EXPAND variable Michał Górny
2024-02-07 20:11 ` [gentoo-dev] [PATCH 5/8] llvm-r1.eclass: Initial version Michał Górny
2024-02-08 19:07 ` [gentoo-dev] [PATCH v2] " Michał Górny
2024-02-09 16:59 ` [gentoo-dev] [PATCH v3] " Michał Górny
2024-02-09 23:49 ` Sam James
2024-02-07 20:11 ` [gentoo-dev] [PATCH 6/8] dev-util/intel_clc: Migrate to llvm-r1 Michał Górny
2024-02-08 7:00 ` Sam James
2024-02-08 12:35 ` Arsen Arsenović
2024-02-07 20:11 ` Michał Górny [this message]
2024-02-07 20:11 ` [gentoo-dev] [PATCH 8/8] sys-devel/lld: Migrate to llvm-utils.eclass Michał Górny
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240207203515.17640-8-mgorny@gentoo.org \
--to=mgorny@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox