From 441401bb8bed5cccc48ff259d72b9717c6e5d635 Mon Sep 17 00:00:00 2001
From: Dr Owain Kenway <o.kenway@ucl.ac.uk>
Date: Mon, 1 Jul 2019 01:04:29 +0100
Subject: [PATCH] llvm: don't build CppBackend for flang versions of llvm
 (#11841)

The version of LLVM used by flang is new enough that CppBackend doesn't exist.  Unfortunately, `flang-xxxxxxxx` is seen as < `3.9.0` by the version check.

* add a special case for `flang` versions.
---
 var/spack/repos/builtin/packages/llvm/package.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py
index c19c623cc9..d319da702b 100644
--- a/var/spack/repos/builtin/packages/llvm/package.py
+++ b/var/spack/repos/builtin/packages/llvm/package.py
@@ -664,10 +664,14 @@ def cmake_args(self):
         if '+all_targets' not in spec:  # all is default on cmake
 
             targets = ['NVPTX', 'AMDGPU']
-            if spec.version < Version('3.9.0'):
+            if (spec.version < Version('3.9.0')
+                and spec.version[0] != 'flang'):
                 # Starting in 3.9.0 CppBackend is no longer a target (see
                 # LLVM_ALL_TARGETS in llvm's top-level CMakeLists.txt for
                 # the complete list of targets)
+
+                # This also applies to the version of llvm used by flang
+                # hence the test to see if the version starts with "flang".
                 targets.append('CppBackend')
 
             if 'x86' in spec.architecture.target.lower():
-- 
GitLab