Link
The Link task, which is required for the unmanaged platforms, Cocoa and Island only, is used to post-process the compiler output, which is in form of "object' files, into the finished. This may include combining the binary with any referenced static libraries.
Linking is only required for non-Static Library projects on all Cocoa and Island sub-platforms. On Cocoa, the ElementsMergeToffee
task might be additionally used to then merge different architectures into a single "fat" binary.
- Implemented in
ElementsLink
, runs once per project.
Pre-Tasks
Execution
As it runs, the task loops over all active targets, and runs the appropriate platform-specific subtasks to perform the reference resolution, for Cocoa or Island targets.
For Echoes and Cooper targets, no linking phase is needed, so this task is a no-op, there.
Input
CompilerOutput-*
objects (per architecture and device)
Output
On success, new LinkerOutput-*
objects will be created, per architecture (Cocoa and Island) and Device (Cocoa only).
Caching
The result of linking resolving is cached in Linker-*.caches
, per architecture (Cocoa and Island) and Device (Cocoa only), subject to the date of the project file and the compiler input.