commit:     f093eda1304c78b5977ee5a407bd1f51b813aa71
Author:     Kamal Abdellatif <gentoo.kamal <AT> tgf <DOT> pw>
AuthorDate: Sun Feb 12 21:18:08 2023 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Sun Feb 12 21:18:08 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=f093eda1

dev-cpp/xtensor: new package, add 0.24.4

Signed-off-by: Kamal Abdellatif <gentoo.kamal <AT> tgf.pw>

 dev-cpp/xtensor/Manifest              |  1 +
 dev-cpp/xtensor/metadata.xml          | 17 ++++++
 dev-cpp/xtensor/xtensor-0.24.4.ebuild | 98 +++++++++++++++++++++++++++++++++++
 3 files changed, 116 insertions(+)

diff --git a/dev-cpp/xtensor/Manifest b/dev-cpp/xtensor/Manifest
new file mode 100644
index 000000000..f32665894
--- /dev/null
+++ b/dev-cpp/xtensor/Manifest
@@ -0,0 +1 @@
+DIST xtensor-0.24.4.tar.gz 1203049 BLAKE2B 
512ab8b2e23b295e36462b63d796d037a4300b184e5932390e8c85a98e2f96639794622817bbdb73a24925c21d210bb39c96ecbd0f3d569a05eb8c5458b805c8
 SHA512 
e245571553592d5d0e98af5b645bc4526123764b0507ab6fb9ade690f62eae1e2850d8a44b0550ff95276b968c287bf7d6cab9262af5f28bcf7345b6d317d16a

diff --git a/dev-cpp/xtensor/metadata.xml b/dev-cpp/xtensor/metadata.xml
new file mode 100644
index 000000000..547112e58
--- /dev/null
+++ b/dev-cpp/xtensor/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Kamal Abdellatif</name>
+       </maintainer>
+       <upstream>
+               <remote-id type="github">xtensor-stack/xtensor</remote-id>
+               <doc>https://xtensor.readthedocs.io/en/latest/</doc>
+       </upstream>
+       <use>
+               <flag name="openmp">Enable parallel assignment loop using 
OpenMP</flag>
+               <flag name="tbb">Enable parallel assignment loop using 
dev-cpp/tbb</flag>
+               <flag name="xsimd">Enable SIMD accelaration using 
dev-cpp/xsimd</flag>
+       </use>
+</pkgmetadata>

diff --git a/dev-cpp/xtensor/xtensor-0.24.4.ebuild 
b/dev-cpp/xtensor/xtensor-0.24.4.ebuild
new file mode 100644
index 000000000..141d6b4c0
--- /dev/null
+++ b/dev-cpp/xtensor/xtensor-0.24.4.ebuild
@@ -0,0 +1,98 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# required because of manuall install in src_install
+CMAKE_MAKEFILE_GENERATOR="emake"
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+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 xsimd"
+
+DEPEND="
+       dev-cpp/xtl
+       tbb? ( dev-cpp/tbb )
+       xsimd? ( dev-cpp/xsimd )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+       doc? (
+               app-doc/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)
+               -DXTENSOR_USE_XSIMD=$(usex xsimd)
+       )
+
+       cmake_src_configure
+}
+
+src_compile() {
+       use test && cmake_src_compile xtest
+
+       if use doc; then
+               cd "${WORKDIR}/${P}/docs" || die
+               emake html BUILDDIR="${BUILD_DIR}"
+               HTML_DOCS=( "${BUILD_DIR}/html/." )
+       fi
+}
+
+src_install() {
+       # default install starts compiling more tests
+       # that do not affect the header-only install image
+       DESTDIR="${D}" emake -C "${BUILD_DIR}" install/fast "$@"
+
+       einstalldocs
+}
+
+pkg_postinst() {
+       optfeature "JSON support" dev-cpp/nlohmann_json
+}

Reply via email to