summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/xtensor/package.py
blob: b7f1a3fa9e9858dbc9ca0847e13e05134622ee17 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack.package import *


class Xtensor(CMakePackage):
    """Multi-dimensional arrays with broadcasting and lazy computing"""

    homepage = "https://github.com/xtensor-stack/xtensor-io"
    url = "https://github.com/QuantStack/xtensor/archive/0.13.1.tar.gz"
    git = "https://github.com/QuantStack/xtensor.git"

    maintainers("ax3l")

    license("BSD-3-Clause")

    version("develop", branch="master")
    version("0.24.1", sha256="dd1bf4c4eba5fbcf386abba2627fcb4a947d14a806c33fde82d0cc1194807ee4")
    version("0.24.0", sha256="37738aa0865350b39f048e638735c05d78b5331073b6329693e8b8f0902df713")
    version("0.23.10", sha256="2e770a6d636962eedc868fef4930b919e26efe783cd5d8732c11e14cf72d871c")
    version("0.23.4", sha256="c8377f8ec995762c89dea2fdf4ac06b53ba491a6f0df3421c4719355e42425d2")
    version("0.23.2", sha256="fde26dcf93f5d95996b8cc7e556b84930af41ff699492b7b20b2e3335e12f862")
    version("0.20.7", sha256="b45290d1bb0d6cef44771e7482f1553b2aa54dbf99ef9406fec3eb1e4d01d52b")
    version("0.15.1", sha256="2f4ac632f7aa8c8e9da99ebbfc949d9129b4d644f715ef16c27658bf4fddcdd3")
    version("0.13.1", sha256="f9ce4cd2110386d49e3f36bbab62da731c557b6289be19bc172bd7209b92a6bc")

    variant("xsimd", default=True, description="Enable SIMD intrinsics")
    variant("tbb", default=True, description="Enable TBB parallelization")

    depends_on("xtl", when="@develop")
    depends_on("xtl@0.7.2:0.7", when="@0.23.2:")
    depends_on("xtl@0.6.4:0.6", when="@0.20.7")
    depends_on("xtl@0.4.0:0.4", when="@0.15.1")
    depends_on("xtl@0.3.3:0.3", when="@0.13.1")
    depends_on("xsimd", when="@develop")

    depends_on("xsimd@8.0.5:", when="@0.24.1: +xsimd")
    depends_on("xsimd@8.0.2:", when="@0.24.0 +xsimd")
    depends_on("xsimd@7.4.10:7", when="@0.23.4:0.23 +xsimd")
    depends_on("xsimd@7.4.9:7", when="@0.23.2 +xsimd")
    depends_on("xsimd@7.2.3:7", when="@0.20.7 +xsimd")
    depends_on("xsimd@4.0.0:4", when="@0.15.1 +xsimd")
    depends_on("xsimd@3.1.0:3", when="@0.13.1 +xsimd")
    depends_on("intel-tbb", when="+tbb")

    # C++14 support
    conflicts("%gcc@:4.8")
    conflicts("%clang@:3.5")
    # untested: conflicts('%intel@:15')
    # untested: conflicts('%pgi@:14')

    def cmake_args(self):
        args = [
            self.define("BUILD_TESTS", self.run_tests),
            self.define_from_variant("XTENSOR_USE_XSIMD", "xsimd"),
            self.define_from_variant("XTENSOR_USE_TBB", "tbb"),
        ]

        return args