The compile task, as the name implies, runs the core compiler that takes source files and generates executable code (binaries) from them. Run once per project, the task smartly analyses all targets and runs the actual compile phase as needed – usually separately for each target, architecture (Cocoa and Island) and for Device vs. Dimulator (Cocoa and Island/Darwin).

  • Implemented in ElementsCompile, runs once per project.




Actual compilation is implemented in parts of the Elements tool chain that are not part of EBuild, and beyond the scope of this documentation.


On success, new CompilerOutput-* objects will be created, per architecture (Cocoa and Island) and Device (Cocoa only).


The result of compilation is cached in CoreCompile-*.caches per target, architecture and device/simulator, subject to the date of the project file and any input files (sources, resources, and resolved references).