summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Oxberry <goxberry@gmail.com>2018-05-09 06:04:06 -0700
committerMassimiliano Culpo <massimiliano.culpo@gmail.com>2018-05-09 15:04:06 +0200
commit7dfc0278e7c828a96ac6592869edd2d8fb99695b (patch)
treee3c14ea49f4647360d41a0367619a8a804df7942
parent4277b42ddc6512d0fe04da45dc75e4eacf61a365 (diff)
downloadspack-7dfc0278e7c828a96ac6592869edd2d8fb99695b.tar.gz
spack-7dfc0278e7c828a96ac6592869edd2d8fb99695b.tar.bz2
spack-7dfc0278e7c828a96ac6592869edd2d8fb99695b.tar.xz
spack-7dfc0278e7c828a96ac6592869edd2d8fb99695b.zip
llvm+lldb plaform=darwin: check for lldb_codesign certificate (#7012)
* llvm+lldb plaform=darwin: check for lldb_codesign Building LLVM with LLDB requires that the "lldb_codesign" code certificate be created (see https://llvm.org/svn/llvm-project/lldb/trunk/docs/code-signing.txt for details). This commit checks for this certificate on Darwin if LLDB is to be built, and returns an informative error message if this certificate is unavailable.
-rw-r--r--var/spack/repos/builtin/packages/llvm/package.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py
index 448b601c22..7182b5b158 100644
--- a/var/spack/repos/builtin/packages/llvm/package.py
+++ b/var/spack/repos/builtin/packages/llvm/package.py
@@ -415,6 +415,26 @@ class Llvm(CMakePackage):
# Github issue #4986
patch('llvm_gcc7.patch', when='@4.0.0:4.0.1+lldb %gcc@7.0:')
+ @when('+lldb platform=darwin')
+ @run_before('cmake')
+ def check_darwin_lldb_codesign_requirement(self):
+ codesign = which('codesign')
+ cp = which('cp')
+ mkdir('tmp')
+ llvm_check_file = join_path('tmp', 'llvm_check')
+ cp('/usr/bin/false', llvm_check_file)
+
+ try:
+ codesign('-f', '-s', 'lldb_codesign', '--dryrun',
+ llvm_check_file)
+
+ except ProcessError:
+ explanation = ('The "lldb_codesign" identity must be available'
+ ' to build LLVM with LLDB. See https://llvm.org/'
+ 'svn/llvm-project/lldb/trunk/docs/code-signing'
+ '.txt for details on how to create this identity.')
+ raise RuntimeError(explanation)
+
def setup_environment(self, spack_env, run_env):
spack_env.append_flags('CXXFLAGS', self.compiler.cxx11_flag)