We can always build debugserver, but we can't always sign it to be useable for testing. LLDB_USE_SYSTEM_DEBUGSERVER should only tell whether or not the system debugserver should be used for testing.
The old behavior complicated the logic around debugserver a lot. The new logic sorts out most of it.
Please note that this patch is in early stage and needs some more testing. It should not affect platfroms other than Darwin. It builds on Davide's approach to validate the code-signing identity at configuration time.
What do you think?
The target will always exist now. The dependency would now depend on LLDB_USE_SYSTEM_DEBUGSERVER and set in lldb/test/CMakeLists.txt.