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.

See Also