# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 23 ) PYTHON_COMPAT=( python3_{11..14} ) inherit cmake llvm.org llvm-r1 multibuild python-any-r1 DESCRIPTION="OpenCL C library" HOMEPAGE="https://libclc.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )" SLOT="0" IUSE="+spirv test video_cards_nvidia video_cards_radeonsi" RESTRICT="!test? ( test )" BDEPEND=" ${PYTHON_DEPS} $(llvm_gen_dep ' llvm-core/clang:${LLVM_SLOT} ') spirv? ( >=dev-util/spirv-llvm-translator-23:* ) test? ( $(python_gen_any_dep ' dev-python/lit[${PYTHON_USEDEP}] ') ) " LLVM_COMPONENTS=( libclc ) llvm.org_set_globals pkg_setup() { llvm-r1_pkg_setup python-any-r1_pkg_setup } src_configure() { MULTIBUILD_VARIANTS=( "clspv--" "clspv64--" ) use spirv && MULTIBUILD_VARIANTS+=( "spirv-mesa3d-" "spirv64-mesa3d-" ) use video_cards_nvidia && MULTIBUILD_VARIANTS+=( "nvptx64--" "nvptx64--nvidiacl" "nvptx64-nvidia-cuda" ) use video_cards_radeonsi && MULTIBUILD_VARIANTS+=( "amdgcn-amd-amdhsa-llvm" ) multibuild_foreach_variant my_configure } my_configure() { local mycmakeargs=( -DCMAKE_CLC_COMPILER="$(type -P clang-${LLVM_MAJOR})" -DLLVM_RUNTIMES_TARGET="${MULTIBUILD_VARIANT}" ) use test && mycmakeargs+=( -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" -DLLVM_LIT_ARGS="$(get_lit_flags)" ) cmake_src_configure } src_compile() { multibuild_foreach_variant cmake_src_compile } src_test() { # respect TMPDIR! local -x LIT_PRESERVES_TMP=1 multibuild_foreach_variant cmake_build check-libclc } src_install() { multibuild_foreach_variant cmake_src_install }