# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools PYTHON_COMPAT=( python3_{10..13} pypy3 ) inherit cmake distutils-r1 DESCRIPTION="AST-based Python refactoring library" HOMEPAGE=" https://pybind11.readthedocs.io/en/stable/ https://github.com/pybind/pybind11/ https://pypi.org/project/pybind11/ " SRC_URI=" https://github.com/pybind/pybind11/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz " LICENSE="BSD" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" RDEPEND=" dev-cpp/eigen:3 " BDEPEND=" test? ( =dev-cpp/catch-2.13.9:0 dev-libs/boost ) " PATCHES=( "${FILESDIR}/${P}-gcc14-fix.patch" ) EPYTEST_XDIST=1 distutils_enable_tests pytest python_prepare_all() { cmake_src_prepare distutils-r1_python_prepare_all } python_configure() { local mycmakeargs=( # disable forced lto -DHAS_FLTO=OFF # https://github.com/pybind/pybind11/issues/5087 -DPYBIND11_FINDPYTHON=OFF -DPYBIND11_INSTALL=ON -DPYBIND11_TEST=$(usex test) ) cmake_src_configure } python_compile() { distutils-r1_python_compile # Compilation only does anything for tests use test && cmake_src_compile } python_test() { cmake_build cpptest test_cmake_build local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 cd "${BUILD_DIR}/tests" || die epytest "${S}/tests" } python_install() { distutils-r1_python_install cmake_src_install }