From daea1fcef63e8775bf815d0492717ab5c73f0d92 Mon Sep 17 00:00:00 2001
From: Christoph Junghans <junghans@lanl.gov>
Date: Mon, 1 Jun 2020 13:58:09 -0600
Subject: [PATCH] exampm: fix build (#16894)

* cabana: add mpi variant

* cajita: initial import

* exampm: update deps

* flake8
---
 .../repos/builtin/packages/cabana/package.py  |  4 +++
 .../repos/builtin/packages/cajita/package.py  | 29 +++++++++++++++++++
 .../repos/builtin/packages/exampm/package.py  | 18 +++++++++++-
 3 files changed, 50 insertions(+), 1 deletion(-)
 create mode 100644 var/spack/repos/builtin/packages/cajita/package.py

diff --git a/var/spack/repos/builtin/packages/cabana/package.py b/var/spack/repos/builtin/packages/cabana/package.py
index 53ae608644..b84bfa60b0 100644
--- a/var/spack/repos/builtin/packages/cabana/package.py
+++ b/var/spack/repos/builtin/packages/cabana/package.py
@@ -23,6 +23,7 @@ class Cabana(CMakePackage):
     variant('openmp', default=False, description="enable OpenMP backend")
     variant('cuda', default=False, description="enable Cuda backend")
     variant('shared', default=True, description='Build shared libraries')
+    variant('mpi', default=True, description='Build with mpi support')
 
     depends_on("cmake@3.9:", type='build')
     depends_on("kokkos-legacy+serial", when="@:0.2.0+serial")
@@ -31,6 +32,7 @@ class Cabana(CMakePackage):
     depends_on("kokkos@3.1:+serial", when="@0.3.0:+serial")
     depends_on("kokkos@3.1:+openmp", when="@0.3.0:+openmp")
     depends_on("kokkos@3.1:+cuda", when="@0.3.0:+cuda")
+    depends_on('mpi', when='+mpi')
 
     def cmake_args(self):
         options = [
@@ -41,6 +43,8 @@ def cmake_args(self):
                 'On' if '+openmp'  in self.spec else 'Off'),
             '-DCabana_ENABLE_Cuda=%s'  % (
                 'On' if '+cuda'  in self.spec else 'Off'),
+            '-DCabana_ENABLE_MPI=%s'  % (
+                'On' if '+mpi'  in self.spec else 'Off'),
             '-DBUILD_SHARED_LIBS=%s' % (
                 'On' if '+shared'  in self.spec else 'Off')
         ]
diff --git a/var/spack/repos/builtin/packages/cajita/package.py b/var/spack/repos/builtin/packages/cajita/package.py
new file mode 100644
index 0000000000..ddfa96a81e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cajita/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2020 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 import *
+
+
+class Cajita(CMakePackage):
+    """An MPI+Kokkos library for logically rectilinear grids"""
+
+    homepage = "https://github.com/ECP-copa/Cajita"
+    git      = "https://github.com/ECP-copa/Cajita.git"
+
+    version('master', branch='master')
+    version('0.1', tag='0.1.0')
+
+    variant('shared', default=True, description='Build shared libraries')
+
+    depends_on('mpi')
+    depends_on('kokkos@3.0:')
+
+    def cmake_args(self):
+        options = [
+            '-DBUILD_SHARED_LIBS=%s' % (
+                'On' if '+shared'  in self.spec else 'Off')
+        ]
+
+        return options
diff --git a/var/spack/repos/builtin/packages/exampm/package.py b/var/spack/repos/builtin/packages/exampm/package.py
index bf1ae7f545..e5ba567196 100644
--- a/var/spack/repos/builtin/packages/exampm/package.py
+++ b/var/spack/repos/builtin/packages/exampm/package.py
@@ -12,6 +12,22 @@ class Exampm(CMakePackage):
     homepage = "https://github.com/ECP-copa/ExaMPM"
     git      = "https://github.com/ECP-copa/ExaMPM.git"
 
-    version('develop', branch='master')
+    version('master', branch='master')
 
     tags = ['proxy-app']
+
+    variant('shared', default=True, description='Build shared libraries')
+
+    depends_on('mpi')
+    depends_on('kokkos@3.0:')
+    depends_on('silo')
+    depends_on('cabana+mpi@master')
+    depends_on('cajita@master')
+
+    def cmake_args(self):
+        options = [
+            '-DBUILD_SHARED_LIBS=%s' % (
+                'On' if '+shared'  in self.spec else 'Off')
+        ]
+
+        return options
-- 
GitLab