Importing Cocoa SDKs in Fire
Elements already ships with .fx
files for the latest macOS, iOS, tvOS and watchOS SDKs, when working in Cocoa projects.
Usually, imports for new versions of Xcode, including betas, are made available within a day or two at elementscompiler.com/elements/sdks, and EBuild will automatically download these new SDK imports for you, as needed.
That said, FXGen integrated into Fire makes it possible to use beta SDKs we haven't added support for yet, or to manually re-import an existing (e.g. older) SDK, should the need arise.
FXGen for Cocoa SDKs is available via the "Tools|Cocoa|FXGen|Import SDKs from Xcode" menu. Selecting the command will show the following sheet:
Fire will already pre-select the currently active Xcode version (if configured), but you can select a different (e.g. older) version of Xcode.app
via the "Browse" button at the top.
In the table view below, FXGen shows all the SDKs found in Xcode, and it will check the ones that Fire does not already have .fx
files for by default. You can also optionally check SDKs marked as "(already imported)", if you want to to re-import them anyway.
Finally, you can specify compiler back-end mode to import for, Toffee or Island, as well as the destination folder where FXGen should put the finished .fx
files, at the bottom.
Click "Import" to start the import process, and FXGen will launch the import script and show the "Activity" window, where you can see the progress.
Depending on the size and scope of the SDKs, this can take several mintes or longer; you can close the FXGen sheet and continue working in the mean time.
The SDKs generate a lot of .fx files, for some platforms in up to five different architectures. iOS for example generates armv7
, armv7s
and arm64
versions for the device, which will then be merged to a Universal .fx
, and i386
and x64
version for the Simulator, which also will be merged. macOS generates only one architecture, but has well over 100 different framework files, from Accelerate.fx
to WebKit.fx
, and each new version adds more.