binding-tools-for-swift-ref.../apinotes
Alex Langford 61be4d969f [CMake][NFC] Introduce component targets for proper dependency tracking
This commit introduces a CMake target for each component, adds install targets
for them, and switches build-script-impl to use the target `install-components`
for installation. Each of the targets for each component depends on each
of the individual targets and outputs that are associated with the
corresponding swift-component.

This is equivalent to what already exists, because right now install rules are
only generated for components that we want to install. Therefore, this commit
should be an NFC.

This is a resubmission (with modifications) of an earlier change. I originally
committed this but there were problems with some installation rules.
2019-08-22 10:16:50 -07:00
..
CMakeLists.txt [CMake][NFC] Introduce component targets for proper dependency tracking 2019-08-22 10:16:50 -07:00
Dispatch.apinotes
README.md [CMake] Stop compiling API notes files to a binary format (#19205) 2018-09-12 14:19:59 -07:00
os.apinotes [oslog] [stdlib-private] Add a prototype of the new os_log swift APIs 2019-03-14 15:26:21 -07:00

README.md

API Notes README

API notes provide a mechanism by which Objective-C APIs can be annotated with additional semantic information not present within the original Objective-C headers. This semantic information can then be used by the Swift compiler when importing the corresponding Objective-C module to provide a better mapping of Objective-C APIs into Swift.

API notes are organized into a set of .apinotes files. Each .apinotes file contains annotations for a single Objective-C module, written in YAML (FIXME: to be) described in the Clang repository. These YAML sources are lazily loaded by the Swift compiler when it imports the corresponding framework, also described below.

To add API notes for a system module $MODULE that does not have them yet, create a new source file $MODULE.apinotes and update CMakeLists.txt. Updated API notes will be found by the build system during the next build.