DCCIOSARM.EXE, the Delphi Cross Compiler for the iOS Device

From RAD Studio
Jump to: navigation, search

Go Up to Command-Line Utilities Index

The DCCIOSARM compiler is a member of a new branch or "next generation" on the Delphi family tree (that is, the Delphi mobile compilers):

  • DCCIOSARM is based on a ground-up implementation of a new compiler front end, tied to LLVM as the compiler backend.
  • DCCIOSARM compiles iOS apps that specifically run on the iOS Device target platform (such as iPod, iPad, or iPhone, connected to a Mac OS X system).

When you set the target platform to iOS Simulator in the IDE, RAD Studio uses DCCIOS32.EXE, the Delphi Cross Compiler for the iOS Simulator.

Differences between DCCIOSARM-DCCIOS32 and Other Delphi Compilers

Many of the differences between DCCIOSARM and other Delphi compilers are related to either the iOS platform or new Delphi language features.

Language Features Unique to the Delphi Mobile Compilers

Following are the major language differences between the Delphi mobile compilers and the Delphi desktop compilers:

  • Automatic reference counting (ARC) for classes is supported by the Delphi mobile compilers. All Delphi compilers (desktop and mobile) support ARC for interfaces and dynamic arrays.
  • Strings are 0-based (instead of 1-based) and are likely to become immutable (constant) in the Delphi mobile compilers.
  • The following string types are not supported by the Delphi mobile compilers (which do support UnicodeString, the default string type):
    • WideString
    • AnsiString and ShortString
    • AnsiChar
    • PAnsiChar and PWideChar
    • OpenString
  • Use of pointers is not supported by the Delphi mobile compilers.

For more information about writing code for the Delphi mobile compilers, see Migrating Delphi Code to iOS from Desktop.

Compiler Project Options for DCCIOSARM

DCCIOSARM exposes many of the same compiler options and behaviors as DCCIOS32, the Delphi mobile compiler for the iOS Simulator, as well as the other Delphi compilers. For more information, see Delphi Compiler Project Options.

Options Supported Only by DCCIOSARM

In the IDE, Delphi apps for the iOS Device target platform support the following options that are not available for Delphi desktop applications or for DCCIOS32:

  • Minimum iOS version supported (Linking)
    You can specify the earliest version of iOS that your app supports, such as iOS 5.1. Supporting multiple iOS versions might require conditional coding; DCCIOSARM supports the IOS and CPUARM conditionals, among others. For a list of the conditionals supported by various compilers, see Conditional compilation (Delphi).
  • Options to pass to the linker (Linking)
    DCCIOSARM has a separate linker named ld.exe. However, your experience should be exactly the same as with the other Delphi compilers that have a built-in linker.
    Options you might include are the Delphi compiler options that pertain to linking, such as -o (object directories).
  • Map file ARM (Linking)
    DCCIOSARM can produce an ARM map file and a .drc file.
  • Framework search path (Delphi Compiler)
    This is the ‑‑frameworkpath compiler option.
  • System library root path (Delphi Compiler)
    This is the ‑‑syslibroot compiler option.

Delphi Options Not Supported by DCCIOSARM

If the target platform is set to iOS Device, the following compiler options for Delphi desktop applications are not supported in the IDE:

  • No remote debug symbols file (-VR or -VT options) (Linking)
  • No separate .tds file for linking (Linking)
  • No Windows-only options such as PE Headers (Linking)
  • No Windows map files (Linking)
  • No Pentium-safe FDIV (Compiling)
  • No C/C++ .bpi output directory and no C/C++ output file generation (Output - C/C++)

Displaying the Help for DCCIOSARM

To display the help for the command-line compiler, run the compiler with the -h switch:

dcciosarm -h

See Also

Other Delphi Compilers: