llvm-project/clang-tools-extra/clangd/xpc
Chris Bieneman 760a9ee63c Support codesigning bundles and forcing
Summary:
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.

Reviewers: jkorous, bogner

Reviewed By: bogner

Subscribers: mgorny, ilya-biryukov, dexonsmith, arphaman, kadircet, cfe-commits, llvm-commits

Tags: #clang, #llvm

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

llvm-svn: 362169
2019-05-30 22:25:48 +00:00
..
cmake Support codesigning bundles and forcing 2019-05-30 22:25:48 +00:00
framework gn build: Add build files for clangd xpc framework code 2019-04-03 12:33:19 +00:00
test-client gn build: Add build files for clangd xpc framework code 2019-04-03 12:33:19 +00:00
CMakeLists.txt [clangd] Library dependencies in XPC 2019-02-27 02:37:44 +00:00
Conversion.cpp
Conversion.h
README.txt
XPCTransport.cpp

README.txt

This directory contains:
- the XPC transport layer (alternative transport layer to JSON-RPC)
- XPC framework wrapper that wraps around Clangd to make it a valid XPC service
- XPC test-client

MacOS only. Feature is guarded by CLANGD_BUILD_XPC, including whole xpc/ dir.