# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_EXT=1 DISTUTILS_USE_PEP517=setuptools PYTHON_COMPAT=( python3_{12..14} ) inherit distutils-r1 git-r3 optfeature DESCRIPTION="NumPy-aware dynamic Python compiler using LLVM" HOMEPAGE="https://numba.pydata.org/ https://github.com/numba/numba" EGIT_REPO_URI="https://github.com/numba/numba.git" LICENSE="0BSD BSD BSD-2 HPND MIT NVIDIA-CUDA PSF-2 PYTHON" SLOT="0" IUSE+=" openmp threads" RESTRICT="bindist" # llvmlite ships a compiled binding tied to its LLVM major; depend on its # subslot (:=) so numba rebuilds when llvmlite is rebuilt against a new LLVM. DEPEND+=" >=dev-python/numpy-1.11[${PYTHON_USEDEP}] threads? ( >=dev-cpp/tbb-2021.6:= ) " RDEPEND+=" ~dev-python/llvmlite-9999:=[${PYTHON_USEDEP}] >=dev-python/numpy-1.22[${PYTHON_USEDEP}] threads? ( >=dev-cpp/tbb-2021.6:= ) " BDEPEND+=" >=dev-python/numpy-1.11[${PYTHON_USEDEP}] " distutils_enable_sphinx docs/source dev-python/numpydoc dev-python/sphinx-rtd-theme distutils_enable_tests unittest pkg_setup() { if ! use openmp; then export NUMBA_DISABLE_OPENMP=1 else unset NUMBA_DISABLE_OPENMP fi if ! use threads; then export NUMBA_DISABLE_TBB=1 else unset NUMBA_DISABLE_TBB export TBBROOT="${EPREFIX}/usr" fi } python_test() { cd "${BUILD_DIR}/install$(python_get_sitedir)" || die "${EPYTHON}" -m numba.runtests -v \ numba.tests.test_import \ numba.tests.test_llvm_version_check \ numba.tests.test_usecases || die "tests failed for ${EPYTHON}" } pkg_postinst() { optfeature "compile CUDA code" dev-util/nvidia-cuda-toolkit }