diff options
author | Kamal Abdellatif <gentoo.kamal@tgf.pw> | 2023-02-12 21:18:08 +0000 |
---|---|---|
committer | Kamal Abdellatif <gentoo.kamal@tgf.pw> | 2023-02-12 21:18:08 +0000 |
commit | f093eda1304c78b5977ee5a407bd1f51b813aa71 (patch) | |
tree | 254a7593f119ffed43f8119949a025586ab5fee8 /dev-cpp | |
parent | dev-cpp/xsimd: new package, add 10.0.0 (diff) | |
download | guru-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/Manifest | 1 | ||||
-rw-r--r-- | dev-cpp/xtensor/metadata.xml | 17 | ||||
-rw-r--r-- | dev-cpp/xtensor/xtensor-0.24.4.ebuild | 98 |
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 +} |