summaryrefslogtreecommitdiff
path: root/dev-cpp/xtensor/xtensor-0.26.0.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/xtensor/xtensor-0.26.0.ebuild')
-rw-r--r--dev-cpp/xtensor/xtensor-0.26.0.ebuild87
1 files changed, 87 insertions, 0 deletions
diff --git a/dev-cpp/xtensor/xtensor-0.26.0.ebuild b/dev-cpp/xtensor/xtensor-0.26.0.ebuild
new file mode 100644
index 000000000000..f84eb66e94d8
--- /dev/null
+++ b/dev-cpp/xtensor/xtensor-0.26.0.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake python-any-r1 optfeature toolchain-funcs
+
+DESCRIPTION="header-only C++ library for numerical analysis with multi-dimensional arrays"
+HOMEPAGE="https://github.com/xtensor-stack/xtensor"
+SRC_URI="https://codeload.github.com/xtensor-stack/${PN}/tar.gz/refs/tags/${PV} -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="doc openmp tbb test"
+
+DEPEND="
+ >=dev-cpp/xtl-0.8.0
+ tbb? ( dev-cpp/tbb )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ doc? (
+ app-text/doxygen
+ $(python_gen_any_dep '
+ dev-python/breathe[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ ')
+ )
+ test? ( dev-cpp/doctest )
+"
+
+RESTRICT="!test? ( test )"
+REQUIRED_USE="?? ( tbb openmp )"
+
+python_check_deps() {
+ python_has_version \
+ "dev-python/breathe[${PYTHON_USEDEP}]" \
+ "dev-python/sphinx[${PYTHON_USEDEP}]" \
+ "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ use openmp && tc-check-openmp
+ use doc && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ # Skipping test due to https://github.com/xtensor-stack/xtensor/issues/2653
+ sed -i -e '/test_xoptional\.cpp/d' test/CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_TESTS=$(usex test)
+ -DXTENSOR_USE_OPENMP=$(usex openmp)
+ -DXTENSOR_USE_TBB=$(usex tbb)
+ # A specific verions of dev-cpp/xsimd is needed, so it requires ongoing maintenance.
+ -DXTENSOR_USE_XSIMD=OFF
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use doc && emake -C docs html
+}
+
+src_install() {
+ use doc && HTML_DOCS=( docs/build/html/* )
+ cmake_src_install
+}
+
+pkg_postinst() {
+ optfeature "JSON support" dev-cpp/nlohmann_json
+}