From e925589fc7a79c2044a4453b944af5518404442c Mon Sep 17 00:00:00 2001
From: Axel Huebl <axel.huebl@plasma.ninja>
Date: Wed, 19 Jun 2019 02:05:47 +0200
Subject: [PATCH] xtensor package: add version 0.20.7 and update dependencies
 (#11574)

* xtensor-python: add version 0.23.1
* xtensor-python: update xtensor/xtl dependency version constraints
  for 0.23.1
* xtensor-python: remove xtensor/xtl dependency version constraints
  for the develop version to favor the latest (develop) version of
  these dependencies
* xsimd: add version 7.2.3
* xtensor: add tbb variant to enable TBB parallelization
* xtensor: add version 0.20.7
* xtensor: update CMake args enable xsimd/tbb support based on
  variant settings
* xtl: add version 0.6.4
---
 .../repos/builtin/packages/xsimd/package.py   |  1 +
 .../packages/xtensor-python/package.py        | 11 +++++--
 .../repos/builtin/packages/xtensor/package.py | 29 ++++++++++++++++---
 .../repos/builtin/packages/xtl/package.py     |  1 +
 4 files changed, 35 insertions(+), 7 deletions(-)

diff --git a/var/spack/repos/builtin/packages/xsimd/package.py b/var/spack/repos/builtin/packages/xsimd/package.py
index b969397a61..7dbff47b0f 100644
--- a/var/spack/repos/builtin/packages/xsimd/package.py
+++ b/var/spack/repos/builtin/packages/xsimd/package.py
@@ -16,6 +16,7 @@ class Xsimd(CMakePackage):
     maintainers = ['ax3l']
 
     version('develop', branch='master')
+    version('7.2.3', sha256='bbc673ad3e9d4523503a4222da05886e086b0e0bd6bd93d03ea3b663c74297b9')
     version('4.0.0', '4186ec94985daa3fc284d9d0d4aa03e8')
     version('3.1.0', '29c1c525116cbda28f610e2bf24a827e')
 
diff --git a/var/spack/repos/builtin/packages/xtensor-python/package.py b/var/spack/repos/builtin/packages/xtensor-python/package.py
index 86b13a6077..1b2183fa7d 100644
--- a/var/spack/repos/builtin/packages/xtensor-python/package.py
+++ b/var/spack/repos/builtin/packages/xtensor-python/package.py
@@ -16,11 +16,16 @@ class XtensorPython(CMakePackage):
     maintainers = ['ax3l']
 
     version('develop', branch='master')
+    version('0.23.1', sha256='450b25f5c739df174b2a50774b89e68b23535fdc37cb55bd542ffdb7c78991ab')
     version('0.17.0', '51d22e42909a81201c3421d9e119eed0')
 
-    depends_on('xtensor@0.15.1:0.15.99', when='@0.17.0:')
-    depends_on('xtl@0.4.0:0.4.99', when='@0.17.0:')
-    depends_on('py-pybind11@2.2.1', when='@0.17.0:')
+    depends_on('xtensor', when='@develop')
+    depends_on('xtensor@0.20.6:0.20.99', when='@0.23.1')
+    depends_on('xtensor@0.15.1:0.15.99', when='@0.17.0')
+    depends_on('xtl', when='@develop')
+    depends_on('xtl@0.6.4:0.6.99', when='@0.23.1')
+    depends_on('xtl@0.4.0:0.4.99', when='@0.17.0')
+    depends_on('py-pybind11@2.2.1:2.2.99')
 
     depends_on('py-numpy')
     depends_on('python', type=('build', 'link', 'run'))
diff --git a/var/spack/repos/builtin/packages/xtensor/package.py b/var/spack/repos/builtin/packages/xtensor/package.py
index 88b5b0db62..e1fd45a943 100644
--- a/var/spack/repos/builtin/packages/xtensor/package.py
+++ b/var/spack/repos/builtin/packages/xtensor/package.py
@@ -16,20 +16,41 @@ class Xtensor(CMakePackage):
     maintainers = ['ax3l']
 
     version('develop', branch='master')
+    version('0.20.7', sha256='b45290d1bb0d6cef44771e7482f1553b2aa54dbf99ef9406fec3eb1e4d01d52b')
     version('0.15.1', 'c24ecc406003bd1ac22291f1f7cac29a')
     version('0.13.1', '80e7e33f05066d17552bf0f8b582dcc5')
 
     variant('xsimd', default=True,
             description='Enable SIMD intrinsics')
+    variant('tbb', default=True,
+            description='Enable TBB parallelization')
 
-    depends_on('xtl')
-    depends_on('xtl@0.4.0:0.4.99', when='@0.15.1:')
+    depends_on('xtl', when='@develop')
+    depends_on('xtl@0.6.4:0.6.99', when='@0.20.7')
+    depends_on('xtl@0.4.0:0.4.99', when='@0.15.1')
     depends_on('xtl@0.3.3:0.3.99', when='@0.13.1')
-    depends_on('xsimd@4.0.0', when='@0.15.1 +xsimd')
-    depends_on('xsimd@3.1.0', when='@0.13.1 +xsimd')
+    depends_on('xsimd', when='@develop')
+    depends_on('xsimd@7.2.3:7.99', when='@0.20.7 +xsimd')
+    depends_on('xsimd@4.0.0:4.99', when='@0.15.1 +xsimd')
+    depends_on('xsimd@3.1.0:3.99', 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):
+        spec = self.spec
+
+        args = [
+            '-DBUILD_TESTS:BOOL={0}'.format(
+                'ON' if self.run_tests else 'OFF'),
+            '-DXTENSOR_USE_XSIMD:BOOL={0}'.format(
+                'ON' if '+xsimd' in spec else 'OFF'),
+            '-DXTENSOR_USE_TBB:BOOL={0}'.format(
+                'ON' if '+tbb' in spec else 'OFF')
+        ]
+
+        return args
diff --git a/var/spack/repos/builtin/packages/xtl/package.py b/var/spack/repos/builtin/packages/xtl/package.py
index b5f3d9ee7c..54b9902774 100644
--- a/var/spack/repos/builtin/packages/xtl/package.py
+++ b/var/spack/repos/builtin/packages/xtl/package.py
@@ -16,6 +16,7 @@ class Xtl(CMakePackage):
     maintainers = ['ax3l']
 
     version('develop', branch='master')
+    version('0.6.4', sha256='5db5087c37daab3e1d35337782f79972aaaf19218a0de786a0515f247244e390')
     version('0.4.0', '48c76b63ab12e497a53fb147c41ae747')
     version('0.3.4', 'b76548a55f1e171a9c849e5ed543e8b3')
     version('0.3.3', '09b6d9611e460d9280bf1156bcca20f5')
-- 
GitLab