Skip to content
jhaynie edited this page Sep 13, 2010 · 1 revision

For PR2, we’re going to refactor a lot of how OSX load (along with the other platforms). I’m going to attempt to illuminate some of the design here.

Packaging

In PR2, there will be 2 modes of packaging:

  • Application distribution packaging – the distribution includes both the application and the runtime
  • Application runtime packaging – the distribution only includes the application and doesn’t include the distribution

Pre-boot

On boot, the application will be bundled as a normal OSX Application Bundle. The main entry point application will be a small binary which will perform a pre-boot of the application and perform the following:

  • Check to see if the Titanium runtime framework is installed. If installed, it will continue by loading the boot kernel. If not installed, it will extract and install the bundled runtime from the Resources/runtime directory.
  • Once the runtime is installed and available, the pre-boot will execute the boot kernel binary and setup the appropriate paths and environment variables as may be necessary such as DYLD_LIBRARY_PATH

Boot

Once the boot kernel is started, it will perform the following:

  • Load the Host environment and hand off control to the host (host will be an OS specific implementation of TiHost)
  • The host will scan the Plugins directory (location is determined by the platform) and load each plugin

Framework

Titanium will be packaged as a normal Framework. The Framework will include the third-party libraries, resources, etc for a specific version of the runtime.

Clone this wiki locally