From b04f9e6774da91b3de544563f078f5c459f32cef Mon Sep 17 00:00:00 2001
From: Matthieu Dorier <mdorier@anl.gov>
Date: Fri, 24 Jul 2020 23:42:00 +0100
Subject: [PATCH] MPICH (package): add optional support for argobots (#17678)

---
 var/spack/repos/builtin/packages/mpich/package.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index a485124476..d967611fdd 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -67,6 +67,8 @@ class Mpich(AutotoolsPackage):
     variant('libxml2', default=True,
             description='Use libxml2 for XML support instead of the custom '
                         'minimalistic implementation')
+    variant('argobots', default=False,
+            description='Enable Argobots support')
 
     provides('mpi')
     provides('mpi@:3.0', when='@3:')
@@ -141,6 +143,9 @@ class Mpich(AutotoolsPackage):
 
     depends_on('pmix', when='pmi=pmix')
 
+    # +argobots variant requires Argobots
+    depends_on('argobots', when='+argobots')
+
     # building from git requires regenerating autotools files
     depends_on('automake@1.15:', when='@develop', type=("build"))
     depends_on('libtool@2.4.4:', when='@develop', type=("build"))
@@ -307,4 +312,9 @@ def configure_args(self):
             # for hydra, for hydra2, and for MPICH itself).
             config_args += self.enable_or_disable('libxml2')
 
+        # If +argobots specified, add argobots option
+        if '+argobots' in spec:
+            config_args.append('--with-thread-package=argobots')
+            config_args.append('--with-argobots=' + spec['argobots'].prefix)
+
         return config_args
-- 
GitLab