Create a configuration for compiling and creating applications for various Apple platforms.
The result of this task can be passed to the saker.clang.compile() and saker.clang.link() tasks for their CompilerOptions and LinkerOptions parameters to configure them appropriately to create applications for the specified platforms.
The InfoPlistValues field of the result can be used to fill the required plist values for your application.
Summary
AddRPath | Sets whether or not the -rpath parameter should be added for the clang linker. |
Architecture | Specifies the target architecture for the compilation. |
AutomaticReferenceCounting | Sets whether or not automatic reference counting should be used. |
DeviceFamily | Specifies the device families that the app is expected to run on. |
Frameworks | Specifies frameworks that the application uses. |
Identifier | Compilation identifier that specifies for which compilations this preset can be applied to. |
Libraries | Specifies libraries that should be linked with the application. |
Platform | Specifies the development target platform. |
PlatformMinVersion | Specifies the minimum platform version that the application requires. |
Release | Specifies the kind of optimization related configuration that should be used. |
SDKs | Specifies the SDKs (Software Development Kits) that are part of the configuration. |
Parameters
Sets whether or not the -rpath parameter should be added for the clang linker.
If set to true, the -rpath argument is passed to the backend linker with an approriate value for thespecified platform.
The default is true.
Specifies the target architecture for the compilation.
The value of this parameter will be added as a clang argument for the -arch option.
If not specified, a default one is inferred based on the Platform. If set to null, no architecture based configuration is added.
Aliases:
ARC
Sets whether or not automatic reference counting should be used.
If set to true, -fobjc-arc argument is added to clang.
The default is true.
Collection of DeviceFamily
Specifies the device families that the app is expected to run on.
This parameter will cause an appropriate UIDeviceFamily value be inserted in the Info.plist file of your application.
By default, the value of this is inferred based on the target Platform.
You can set this parameter to null to disable the default values.
Generally this parameter is used to add or set iPad as the device family when targetting the iPhoneOS platform.
Collection of String
Specifies frameworks that the application uses.
The given frameworks are added to the clang linking phase as the -framework <NAME> argument.
Compilation identifier that specifies for which compilations this preset can be applied to.
Specifies libraries that should be linked with the application.
The given libraries are added to the clang linking phase as the -l<LIB> argument.
Aliases:
Specifies the development target platform.
The target platform determines some of the clang parameters as well as various values that are to be present in the Info.plist file for the application.
A default SDK will also be added based on the platform (if not already present).
Specifies the minimum platform version that the application requires.
The minimum version causes the appropriate -m<PLATFORM>-version-min parameter to be added to the clang arguments, as well as adds requirements for the application Info.plist.
Specifies the kind of optimization related configuration that should be used.
If this parameter is set to true, the configuration will use options for release optimization. Otherwise it is configured for debugging.
If set to null, no optimization related options are used.
The default is false.
Map of SDKName : SDKDescriptionTaskOption
Specifies the SDKs (Software Development Kits) that are part of the configuration.
The SDKs will be passed to the clang task, and also available with the SDKs field of the result.
Appropriate SDKs for the given Platform, clang, and developer macOS will be added by default.