[CMake] Streamline code signing for debugserver and pass entitlements to extended...
authorStefan Granitz <stefan.graenitz@gmail.com>
Tue, 20 Nov 2018 14:10:33 +0000 (14:10 +0000)
committerStefan Granitz <stefan.graenitz@gmail.com>
Tue, 20 Nov 2018 14:10:33 +0000 (14:10 +0000)
commit6e6b4ac18e7c580d6c439c768aa1954cd05a5342
tree69f79d0618d9013befc8abda2ae664d08cbe4195
parent6fbb3e08d784341905e62968dc6992386a20adc3
[CMake] Streamline code signing for debugserver and pass entitlements to extended llvm_codesign

Summary:
Use llvm_codesign to sign debugserver with entitlements.
Set global LLVM_CODESIGNING_IDENTITY from LLDB_CODESIGN_IDENTITY (if given).
Pass through ENTITLEMENTS from add_lldb_executable to add_llvm_executable.
Handle reconfigurations correctly.

We have a lot of cases, make them explicit:

(1) build and sign debugserver, if all conditions apply:
* LLDB_NO_DEBUGSERVER=OFF (default)
* On Darwin: LLDB_USE_SYSTEM_DEBUGSERVER=OFF (default)
* On Darwin: LLVM_CODESIGNING_IDENTITY == lldb_codesign

(2) use system debugserver, if on Darwin and any of:
* LLDB_USE_SYSTEM_DEBUGSERVER=ON and found on system (explicit case)
* LLVM_CODESIGNING_IDENTITY != lldb_codesign and found on system (fallback case)

(3) debugserver will not be available, in case of:
* LLDB_NO_DEBUGSERVER=ON
* On Darwin: LLVM_CODESIGNING_IDENTITY != lldb_codesign and not found on system

(4) error state, in case of:
* LLDB_USE_SYSTEM_DEBUGSERVER=ON and not found on system
* LLDB_USE_SYSTEM_DEBUGSERVER=ON and LLDB_NO_DEBUGSERVER=ON

Reviewers: xiaobai, beanz, vsk, JDevlieghere

Subscribers: mgorny, lldb-commits, llvm-commits

Differential Revision: https://reviews.llvm.org/D54476

llvm-svn: 347305
lldb/CMakeLists.txt
lldb/cmake/modules/AddLLDB.cmake
lldb/test/CMakeLists.txt
lldb/tools/debugserver/CMakeLists.txt
lldb/tools/debugserver/source/CMakeLists.txt
lldb/unittests/tools/CMakeLists.txt