From 629c69d383fc723ea1c6a4554d224cf367e66cfb Mon Sep 17 00:00:00 2001
From: "Seth R. Johnson" <johnsonsr@ornl.gov>
Date: Sat, 22 Feb 2020 14:09:22 -0500
Subject: [PATCH] Automatically run LLDB codesign script on mac (#15169)

Newer versions of LLVM provide a one-line command to set up LLDB code
signing. Now the build will abort only if this command fails.

https://lldb.llvm.org/resources/build.html#code-signing-on-macos
---
 .../repos/builtin/packages/llvm/package.py      | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py
index 871559d453..1644a8e750 100644
--- a/var/spack/repos/builtin/packages/llvm/package.py
+++ b/var/spack/repos/builtin/packages/llvm/package.py
@@ -162,11 +162,18 @@ def check_darwin_lldb_codesign_requirement(self):
                      llvm_check_file)
 
         except ProcessError:
-            explanation = ('The "lldb_codesign" identity must be available'
-                           ' to build LLVM with LLDB. See https://lldb.llvm'
-                           '.org/resources/build.html#code-signing-on-macos'
-                           'for details on how to create this identity.')
-            raise RuntimeError(explanation)
+            # Newer LLVM versions have a simple script that sets up
+            # automatically
+            setup = Executable("./lldb/scripts/macos-setup-codesign.sh")
+            try:
+                setup()
+            except Exception:
+                raise RuntimeError(
+                    'The "lldb_codesign" identity must be available to build '
+                    'LLVM with LLDB. See https://lldb.llvm.org/resources/'
+                    'build.html#code-signing-on-macos for details on how to '
+                    'create this identity.'
+                )
 
     def setup_build_environment(self, env):
         env.append_flags('CXXFLAGS', self.compiler.cxx11_flag)
-- 
GitLab