Repository: spack/spack

Issue:
Installation issue: umpire
In #19411 `camp` was added as a dependency of `umpire`, but the source checksum of `camp` was wrong, so the `umpire` build didn't get a chance to run.  Then #19543 fixed that problem so that `camp` built, but now the `umpire` build fails during the configuration phase with a lot errors like the following:

```
  >> 66     CMake Error at /home/software/spack_path_placeholder/spack_path_pla
            ceholder/spack_path_placeholder/spack_path_placeholder/spack_path_p
            laceholder/spack_path_placeholder/spack_path_placeholder/spack_path
            _placeholder/spack_path_placeholder/spack_path_placeholder/spack_pa
            th_placeholder/spack_path_placeholder/spack_path_placeholder/spack_
            path_placeholder/spack_path_placeholder/spack_path_placeholder/spac
            k_path_placeholder/spack_path_placeholder/spack_path_placeholder/sp
            ack_path_placeholder/spack_path_placeholder/spack_path_placeholder/
            spack_/linux-ubuntu18.04-x86_64/gcc-7.3.0/blt-0.3.6-gn3xknsnfg5qkpn
            vkzcmdrlivwiudzm6/cmake/BLTPrivateMacros.cmake:338 (target_link_lib
            raries):
     67       Error evaluating generator expression:
     68
     69         $<LINK_LANGUAGE:Fortran>
     70
     71       Expression did not evaluate to a known generator expression
     72     Call Stack (most recent call first):
     73       /home/software/spack_path_placeholder/spack_path_placeholder/spac
            k_path_placeholder/spack_path_placeholder/spack_path_placeholder/sp
            ack_path_placeholder/spack_path_placeholder/spack_path_placeholder/
            spack_path_placeholder/spack_path_placeholder/spack_path_placeholde
            r/spack_path_placeholder/spack_path_placeholder/spack_path_placehol
            der/spack_path_placeholder/spack_path_placeholder/spack_path_placeh
            older/spack_path_placeholder/spack_path_placeholder/spack_path_plac
            eholder/spack_path_placeholder/spack_path_placeholder/spack_/linux-
            ubuntu18.04-x86_64/gcc-7.3.0/blt-0.3.6-gn3xknsnfg5qkpnvkzcmdrlivwiu
            dzm6/cmake/BLTMacros.cmake:604 (blt_setup_target)
     74       examples/CMakeLists.txt:70 (blt_add_executable)
``` 

### Steps to reproduce the issue

```console
$ spack install umpire
```

The above command currently picks up `umpire@4.1.2`.

### Information on your system

This happened on `linux-ubuntu18.04`, attempting to build for `x86_64` target architecture, using a system-provided `gcc@7.3.0`.  The version of `spack` was:

```
$ spack --version
 0.15.4-1688-9b809e01b
```

### Additional information

These builds are running as part of an automated gitlab build pipeline, I have attached the pipeline log as well as the spack build output below.

[pipeline_log.txt](https://github.com/spack/spack/files/5453182/pipeline_log.28.txt)
[spack-build-out.txt](https://github.com/spack/spack/files/5453184/spack-build-out.12.txt)



Discussion:
FYI @eugeneswalker
@adrienbernede @davidbeckingsale 
What version of CMake is this?
@davidbeckingsale It's cmake 3.17.3, see the attached spack build output.
Trying to reproduce right now...
@scottwittenburg I have attached a patch to fix this, and we will fix it in Umpire develop. I don't think this problem was introduced by the camp or BLT dependencies, but rather that #19411 added new versions of Umpire. This patch will apply to versions 4.1.0 -> 4.2.2 of Umpire.

[umpire-cmake-check.txt](https://github.com/spack/spack/files/5455132/umpire-cmake-check.txt)


Ah, that makes sense, thanks @davidbeckingsale for digging into it and coming up with a patch.  Are you planning to add that patch to spack?  

@eugeneswalker Would you rather see umpire commented out or pinned to a previous working version in gitlab E4S pipelines?  Just until either the patch lands in spack or the latest version works without it.
let us just pin to earlier version for now! thank you!

Resolving patch:
diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py
--- a/var/spack/repos/builtin/packages/umpire/package.py
+++ b/var/spack/repos/builtin/packages/umpire/package.py
@@ -14,6 +14,8 @@ class Umpire(CMakePackage, CudaPackage):
     homepage = 'https://github.com/LLNL/Umpire'
     git      = 'https://github.com/LLNL/Umpire.git'
 
+    maintainers = ['davidbeckingsale']
+
     version('develop', branch='develop', submodules='True')
     version('main', branch='main', submodules='True')
     version('4.1.2', tag='v4.1.2', submodules='True')
@@ -42,6 +44,7 @@ class Umpire(CMakePackage, CudaPackage):
     version('0.1.3', tag='v0.1.3', submodules='True')
 
     patch('camp_target_umpire_3.0.0.patch', when='@3.0.0')
+    patch('cmake_version_check.patch', when='@4.1.0:main')
 
     variant('fortran', default=False, description='Build C/Fortran API')
     variant('c', default=True, description='Build C API')


Test patch: