Clangd's framework is assembled by copying binaries from the lib and bin directories into a bundle shape. This results in an invalid bundle code signature because the signature only applies to the binaries not the resources.
This patch adds two new options to llvm_codesign to enable re-signing the library and XPC service as bundles.
The BUNDLE_PATH option allow specifying an explicit path to codesign, which enables signing bundles which aren't generated using CMake's FRAMEWORK or BUNDLE target properties.
The FORCE option allows re-signing binaries that have already been signed. This is required for how clangd exposes the clangd library and tools as both XPC and non-XPC services using the same binary.