summaryrefslogtreecommitdiff
path: root/var
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 /var
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.
Diffstat (limited to 'var')
-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)