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 | |
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.
-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) |