aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamal Abdellatif <gentoo.kamal@tgf.pw>2023-02-12 21:18:08 +0000
committerKamal Abdellatif <gentoo.kamal@tgf.pw>2023-02-12 21:18:08 +0000
commitf093eda1304c78b5977ee5a407bd1f51b813aa71 (patch)
tree254a7593f119ffed43f8119949a025586ab5fee8 /dev-cpp
parentdev-cpp/xsimd: new package, add 10.0.0 (diff)
downloadguru-f093eda1304c78b5977ee5a407bd1f51b813aa71.tar.gz
guru-f093eda1304c78b5977ee5a407bd1f51b813aa71.tar.bz2
guru-f093eda1304c78b5977ee5a407bd1f51b813aa71.zip
dev-cpp/xtensor: new package, add 0.24.4
Signed-off-by: Kamal Abdellatif <gentoo.kamal@tgf.pw>
Diffstat (limited to 'dev-cpp')
-rw-r--r--dev-cpp/xtensor/Manifest1
-rw-r--r--dev-cpp/xtensor/metadata.xml17
-rw-r--r--dev-cpp/xtensor/xtensor-0.24.4.ebuild98
3 files changed, 116 insertions, 0 deletions
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>gentoo.kamal@tgf.pw</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
+}