diff options
Diffstat (limited to 'dev-libs/libclc/libclc-15.0.6.ebuild')
-rw-r--r-- | dev-libs/libclc/libclc-15.0.6.ebuild | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/dev-libs/libclc/libclc-15.0.6.ebuild b/dev-libs/libclc/libclc-15.0.6.ebuild new file mode 100644 index 000000000000..3a0f83d5a902 --- /dev/null +++ b/dev-libs/libclc/libclc-15.0.6.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..11} ) +inherit cmake llvm llvm.org python-any-r1 + +DESCRIPTION="OpenCL C library" +HOMEPAGE="https://libclc.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi" + +LLVM_MAX_SLOT=15 +BDEPEND=" + ${PYTHON_DEPS} + || ( + ( + sys-devel/clang:15 + spirv? ( dev-util/spirv-llvm-translator:15 ) + ) + ( + sys-devel/clang:14 + spirv? ( dev-util/spirv-llvm-translator:14 ) + ) + ( + sys-devel/clang:13 + spirv? ( dev-util/spirv-llvm-translator:13 ) + ) + ) +" + +LLVM_COMPONENTS=( libclc ) +llvm.org_set_globals + +llvm_check_deps() { + if use spirv; then + has_version -b "dev-util/spirv-llvm-translator:${LLVM_SLOT}" || + return 1 + fi + has_version -b "sys-devel/clang:${LLVM_SLOT}" +} + +pkg_setup() { + # we do not need llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_configure() { + local libclc_targets=() + + use spirv && libclc_targets+=( + "spirv-mesa3d-" + "spirv64-mesa3d-" + ) + use video_cards_nvidia && libclc_targets+=( + "nvptx--" + "nvptx64--" + "nvptx--nvidiacl" + "nvptx64--nvidiacl" + ) + use video_cards_r600 && libclc_targets+=( + "r600--" + ) + use video_cards_radeonsi && libclc_targets+=( + "amdgcn--" + "amdgcn-mesa-mesa3d" + "amdgcn--amdhsa" + ) + [[ ${#libclc_targets[@]} ]] || die "libclc target missing!" + + libclc_targets=${libclc_targets[*]} + local mycmakeargs=( + -DLIBCLC_TARGETS_TO_BUILD="${libclc_targets// /;}" + -DLLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + ) + cmake_src_configure +} |