diff options
author | Geoffrey Oxberry <goxberry@gmail.com> | 2018-05-09 06:04:06 -0700 |
---|---|---|
committer | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2018-05-09 15:04:06 +0200 |
commit | 7dfc0278e7c828a96ac6592869edd2d8fb99695b (patch) | |
tree | e3c14ea49f4647360d41a0367619a8a804df7942 /var | |
parent | 4277b42ddc6512d0fe04da45dc75e4eacf61a365 (diff) | |
download | spack-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.py | 20 |
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) |