diff --git a/dev-util/mesa_clc/Manifest b/dev-util/mesa_clc/Manifest index f98729782afb9..ba7272a57f646 100644 --- a/dev-util/mesa_clc/Manifest +++ b/dev-util/mesa_clc/Manifest @@ -5,3 +5,4 @@ DIST mesa-25.1.9.tar.xz 47219748 BLAKE2B df326ae261fb417022af48b6edc1a5dc512c46a DIST mesa-25.2.0.tar.xz 43549344 BLAKE2B 9473c68e890992a4d88430da5896b7d209461fe0a8150909a179ed25229541e516744db09ff3f18ce38892270fe59a456569b850ccf2cc3d7b26efe0a9895d2d SHA512 f36e4f9f619becfc89f9cf3704d21f5f1532f1e658808fd30c0edce8c28cd65dc6578a21333e896aa5eaccf09da99efd9127a8d3d46681e8360f618cf63bab94 DIST mesa-25.2.1.tar.xz 43580684 BLAKE2B f7dd9dd570bc21def5b829747854143eef5fed50bbe01d17c91a0b28ae71251001d8de116347ec62578aaf7381b5f12584995ff17dab3ed33f4f678246c431f7 SHA512 913ee1d00e13bafb7275740ba0883cf949a42d45595ef5bab60038064cb27aff36285ac9105269be5c0e3b4320fc7b70ca5c5f28e2cf79457882baff7e10620b DIST mesa-25.2.2.tar.xz 43626716 BLAKE2B bed81e32c05ebff6f2a76bb14387882eed48556737e30e2da2f5a02fbe9e9973f5fa05303e10e624bb703ef56c4fe2f48ab69f3d2806191969d73d99920b5abb SHA512 69cd7ed33d0856e227a0219a9d09e5eb2fad28162276b5971bff4f7102cf58b0d914131ad6543562cba230ce6fb9b2076d3b156b1b8c375e74722a143aee5379 +DIST mesa-25.2.3.tar.xz 43670524 BLAKE2B 1810c17e589f95f1e3b18f2562a0c193016a6b9aa260387d06b0750db7c1fb08e7ad1b2476caf79cde18fa919b320de2b12508228047e8ca3af13efb2046b3fe SHA512 e03c09de2a6482a87362c0bf4fab4f9b32ffa48935a8724eb83e75b246f1bfc59524d04ea7e8cbea34e5c6ad2a0793195a076fe2d27da8fb7e05f56c7662eac5 diff --git a/dev-util/mesa_clc/mesa_clc-25.2.3.ebuild b/dev-util/mesa_clc/mesa_clc-25.2.3.ebuild new file mode 100644 index 0000000000000..06ac2597ae7f8 --- /dev/null +++ b/dev-util/mesa_clc/mesa_clc-25.2.3.ebuild @@ -0,0 +1,123 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {18..20} ) +PYTHON_COMPAT=( python3_{11..14} ) + +inherit llvm-r1 meson python-any-r1 + +MY_PV="${PV/_/-}" + +DESCRIPTION="mesa_clc tool used for building OpenCL C to SPIR-V" +HOMEPAGE="https://mesa3d.org/" + +if [[ ${PV} == 9999 ]]; then + S="${WORKDIR}/mesa_clc-${MY_PV}" + EGIT_REPO_URI="https://gitlab.freedesktop.org/mesa/mesa.git" + inherit git-r3 +else + S="${WORKDIR}/mesa-${MY_PV}" + SRC_URI="https://archive.mesa3d.org/mesa-${MY_PV}.tar.xz" + KEYWORDS="~amd64 ~arm ~arm64 ~x86" +fi + +LICENSE="MIT" +SLOT="0" + +VIDEO_CARDS="asahi panfrost" +for card in ${VIDEO_CARDS}; do + IUSE_VIDEO_CARDS+=" video_cards_${card}" +done +IUSE="${IUSE_VIDEO_CARDS} debug" + +RDEPEND=" + dev-util/spirv-tools + $(llvm_gen_dep ' + dev-util/spirv-llvm-translator:${LLVM_SLOT} + llvm-core/clang:${LLVM_SLOT}= + =llvm-core/libclc-${LLVM_SLOT}* + llvm-core/llvm:${LLVM_SLOT}= + ') +" +DEPEND="${RDEPEND} + dev-libs/expat + >=sys-libs/zlib-1.2.8:= + x11-libs/libdrm +" +BDEPEND=" + ${PYTHON_DEPS} + $(python_gen_any_dep " + >=dev-python/mako-0.8.0[\${PYTHON_USEDEP}] + dev-python/packaging[\${PYTHON_USEDEP}] + dev-python/pyyaml[\${PYTHON_USEDEP}] + ") + virtual/pkgconfig +" + +python_check_deps() { + python_has_version -b ">=dev-python/mako-0.8.0[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/packaging[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/pyyaml[${PYTHON_USEDEP}]" || return 1 +} + +pkg_setup() { + llvm-r1_pkg_setup + python-any-r1_pkg_setup +} + +src_configure() { + tools_enable video_cards_asahi asahi + tools_enable video_cards_panfrost panfrost + + tools_list() { + local tools="$(sort -u <<< "${1// /$'\n'}")" + echo "${tools//$'\n'/,}" + } + + PKG_CONFIG_PATH="$(get_llvm_prefix)/$(get_libdir)/pkgconfig" + + use debug && EMESON_BUILDTYPE=debug + + local emesonargs=( + -Dllvm=enabled + -Dshared-llvm=enabled + -Dmesa-clc=enabled + -Dinstall-mesa-clc=true + -Dprecomp-compiler=enabled + -Dinstall-precomp-compiler=true + -Dtools=$(tools_list "${TOOLS[*]}") + + -Dgallium-drivers='' + -Dvulkan-drivers='' + + # Set platforms empty to avoid the default "auto" setting. If + # platforms is empty meson.build will add surfaceless. + -Dplatforms='' + + -Dglx=disabled + -Dlibunwind=disabled + -Dzstd=disabled + + -Db_ndebug=$(usex debug false true) + ) + + meson_src_configure +} + +src_install() { + dobin "${BUILD_DIR}"/src/compiler/clc/mesa_clc + dobin "${BUILD_DIR}"/src/compiler/spirv/vtn_bindgen2 + use video_cards_asahi && dobin "${BUILD_DIR}"/src/asahi/clc/asahi_clc + use video_cards_panfrost && dobin "${BUILD_DIR}"/src/panfrost/clc/panfrost_compile +} + +# $1 - VIDEO_CARDS flag (check skipped for "--") +# other args - names of tools to enable +tools_enable() { + if [[ $1 == -- ]] || use $1; then + shift + TOOLS+=("$@") + fi +}