From 54bfa888b96cb40c7be64c4b0f2e2459a543949a Mon Sep 17 00:00:00 2001
From: Christoph Junghans <christoph.junghans@gmail.com>
Date: Tue, 25 Apr 2017 10:06:05 -0700
Subject: [PATCH] legion: add mpi interoperability and shared libs (#3959)

* legion: add mpi inoperability

* legion: make +mpi the default

* legion: add shared variant
---
 .../repos/builtin/packages/legion/package.py     | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py
index ddfa8a8b94..2d93ee0e3a 100644
--- a/var/spack/repos/builtin/packages/legion/package.py
+++ b/var/spack/repos/builtin/packages/legion/package.py
@@ -47,9 +47,13 @@ class Legion(CMakePackage):
     version('17.02.0', '31ac3004e2fb0996764362d2b6f6844a')
 
     variant('debug', default=False, description='Build debug version')
+    variant('mpi', default=True,
+            description='Build on top of mpi conduit for mpi inoperability')
+    variant('shared', default=True, description='Build shared libraries')
 
     depends_on("cmake@3.1:", type='build')
-    depends_on("gasnet")
+    depends_on("gasnet", when='~mpi')
+    depends_on("gasnet+mpi", when='+mpi')
 
     def build_type(self):
         spec = self.spec
@@ -59,4 +63,12 @@ def build_type(self):
             return 'Release'
 
     def cmake_args(self):
-        return ['-DLegion_USE_GASNet=ON', '-DLegion_BUILD_EXAMPLES=ON']
+        options = [
+            '-DLegion_USE_GASNet=ON',
+            '-DLegion_BUILD_EXAMPLES=ON',
+            '-DBUILD_SHARED_LIBS=%s' % ('+shared' in spec)]
+
+        if '+mpi' in self.spec:
+            options.append('-DGASNet_CONDUIT=mpi')
+
+        return options
-- 
GitLab