My first patch had to be reverted as I missed a few details. This review continues from D54476 and I will add the required fixes.
**In order to see only the latest changes, use Diff1 as base for comparison.** In the meantime I will do further testing with of LLDB and especially debugserver standalone builds.
* Target directory for debugserver in standalone builds
* Default identity for code signing (when no CMake cache used)
* 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:
* 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