From b88c66cb52bb0a439e8a1f3abd5c58047f10477f Mon Sep 17 00:00:00 2001
From: Robert Blake <blake14@llnl.gov>
Date: Thu, 27 Feb 2020 18:17:55 -0800
Subject: [PATCH] Adding an option to build the C api for Umpire. (#15238)

* Adding an option to build the C api for Umpire.

This is useful if you need to link to a C code and you're using
a compiler suite that doesn't support fortran.

* Also updating the versions while I'm here.

* Adding conflict: Fortran requires C.

To ease transition and confusion, default to C-bindings being
present.  This shouldn't hurt anyone who is upgrading an existing
installation.
---
 var/spack/repos/builtin/packages/umpire/package.py | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py
index fc33ca7feb..90ea23dde3 100644
--- a/var/spack/repos/builtin/packages/umpire/package.py
+++ b/var/spack/repos/builtin/packages/umpire/package.py
@@ -16,6 +16,13 @@ class Umpire(CMakePackage):
 
     version('develop', branch='develop', submodules='True')
     version('master', branch='master', submodules='True')
+    version('2.1.0', tag='v2.1.0', submodules='True')
+    version('2.0.0', tag='v2.0.0', submodules='True')
+    version('1.1.0', tag='v1.1.0', submodules='True')
+    version('1.0.1', tag='v1.0.1', submodules='True')
+    version('1.0.0', tag='v1.0.0', submodules='True')
+    version('0.3.5', tag='v0.3.5', submodules='True')
+    version('0.3.4', tag='v0.3.4', submodules='True')
     version('0.3.3', tag='v0.3.3', submodules='True')
     version('0.3.2', tag='v0.3.2', submodules='True')
     version('0.3.1', tag='v0.3.1', submodules='True')
@@ -29,7 +36,8 @@ class Umpire(CMakePackage):
     version('0.1.3', tag='v0.1.3', submodules='True')
 
     variant('cuda', default=False, description='Build with CUDA support')
-    variant('fortran', default=False, description='Build C/Fortran API')
+    variant('fortran', default=False, description='Build Fortran API')
+    variant('c', default=True, description='Build C API')
     variant('numa', default=False, description='Enable NUMA support')
 
     depends_on('cuda', when='+cuda')
@@ -37,6 +45,7 @@ class Umpire(CMakePackage):
     depends_on('cmake@3.9:', when='+cuda', type='build')
 
     conflicts('+numa', when='@:0.3.2')
+    conflicts('~c', when='+fortran', msg='Fortran API requires C API')
 
     def cmake_args(self):
         spec = self.spec
@@ -50,6 +59,9 @@ def cmake_args(self):
         else:
             options.append('-DENABLE_CUDA=Off')
 
+        if '+c' in spec:
+            options.append('-DENABLE_C=On')
+
         if '+fortran' in spec:
             options.append('-DENABLE_FORTRAN=On')
 
-- 
GitLab