Determine Final Output

The penultimate task (run as pre-task from `ElementsCopyFinalOutput'), Determine Final Output gathers the files generated by the build that are considered the final deliverable.

Usually this will include the main binary and possible CopyLocal libraries, but it might also include .fx and .h files (for Cocoa and Island), or not include the binary but instead an application bundle (for Android or Cocoa apps).

  • Runs once per project

Pre-Tasks

Post-Tasks

  • none

Execution

As it runs, the task loops over all active targets, and runs the appropriate platform-specific subtasks to perform the reference resolution:

Output

  • A CopyLocal object will be created for each file determined to be part of the final output, the exact rules of which depend on the platform and output type.

  • A FinalOutputForReferencing or FinalOutputForReferencing-* object will be created for each binary that should be included in project references. This will include the main binary and might include any CopyLocal libraries, as well. For Island, this object will be generated per architecture, for Cocoa it will be generated per device/simulator.

  • For Island/Android projects, a FinalOutputForReferencing-JNI object will be created, which is used for project references from Cooper/Android projects.

Caching

No caching is done (yet).