This action will build Embarcadero Delphi™ for .NET projects (.bdsproj). Delphi for .NET is significantly different from earlier versions of Delphi, thus requiring a separate action.

On this page:

 

Project

Project File

The path to your .bdsproj file (only for Delphi for .NET projects, for Win32 see the Compile Delphi Project action).

Project Options

Build All

Perform a complete rebuild all

Update Package Source

 Whether to update the package source during the build or not. 

Compile Resx

Whether to compiler resource files during the compile or not. 

Compiler Version

Choose the compiler version to compile your project

Project Config

The configuration of the project to build with this action. 

References

Use references settings in .bdsproj/.dproj

Strip Paths from References

This option will mean all path information will be removed from references specified in the project. Helpful for building on different machines where installed libraries exist in different locations. 

Compiler

Compiler Options

Code Generation

Optimizations

When turned on the Delphi compiler will perform code optimisations. Examples of these are (but not limited to):

  • Placing variables in CPU registers
  • Eliminating common subexpressions
  • Generating induction variables

All optimization operations are considered "safe" and don't alter the meaning of the program. 

Record field alignment

Determines the maximum padding that can be used to align a field. Each setting has some extra side affects these are listed below;

  • 1: Fields are not aligned, all structures are packed. 
  • 2: Fields in non-packed records and in class structures are aligned on word boundaries.
  • 4: Fields in non-packed records and in class structures are aligned on doubleword boundaries.
  • 8: Fields in non-packed records and in class structures are aligned on quadword boundaries.

Variables and typed constants are all aligned with optimal access in mind. 

Syntax options

Strict var-strings

When turned on the compiler will enforce type checking for short strings passed as variable parameters. This is really only important for Delphi code which uses short strings. 

Complete boolean eval

When turned on the compiler generates code in which all components of an AND and OR statement are evaluated. Therefore guarenteeing calling of each component on the statement.

When off the compiler generates code which short circuits the statements. This means when evaluated in left to right order, if the result of the statement has become apparent no more of the statement is called. 

Extended syntax

Determines whether Delphi Extended Syntax should be used or not. When enabled the following Delphi features are able to be used;

  • Function Statements
  • The Result Variable
  • Strings Compatible with PChar

Typed @ operator

Determines how the compiler should treat the @ operator and compatibility of pointer types. 

  • Enabled: Only pointers of the same type are compatible. All @ operations create a variable which has pointer type specific to the variable the @ was applied to. 
  • Disabled: All @ operators generate an un-typed pointer. This pointer is compatible with all other pointer types.  

Open parameters

Controls the compilers interpretation of variable parameter strings. When disabled variable string parameters are not treated differently. When enabled variable string parameters are treated as open strings. Regardless of this setting OpenString identifier can be used at any-time. 

Assignable type contants

Controls as to whether the compiler will allow typed contants to be altered or not. When turned On constants are able to be assigned to. When Off constants are not able to be assigned to. In some older code this option is required for the code to compile, for newer projects its suggested to not enable this option. 

Documentation

Generate documentation

Enables or disabled the generation of documentation generation from XML documentation tags with in the source code. 

Target Platform

The platform that the compiler should target. Options are Any, x86, and x64.

Keep generated .cfg file

Whether to keep the config generated for the compiler or not. When On this option means the action will keep the cfg file and rename it to <ProjectFile>.used or dcc32.used. The file will be placed in the same directory as the project file being compiled.

Runtime errors

Range checking

When enabled all array and string indices are validated to be within the bounds of the variable. In addition all scalar and subrange variables are validated to within their bounds. Having this option enabled adds extra checking to the generated code, and therefore will execute slower. 

I/O checking

When enabled all I/O procedures have code generated which checks for non-zero return results. When a non-zero return result is detected an EInOutError exception is raised. 

Overflow checking

When enabled the arithmetic operations of +, -, *, Abs, Sqr, Succ, Pred, Inc, and Dec are have results checked for overflowing the returned variables type. Having this option enabled adds extra checking to the generated code, and therefore will execute slower. 

Debugging

Debug Information

When enabled the compiler is signalled to generate debugging information which is maps object-code to address into the source text file. This information is stored in the unit file with unit object code. This does not affect the speed of generated code, however does cause the compilation process to take up more memory.

Local symbols

When enabled the compiler generates local symbol information. Local symbol information is the name and type of all local variables and constants in the a module. This information is stored in the unit file with unit object code. This does not affect the speed of generated code, however does cause the compilation process to take up more memory.

Reference info

When enabled the compiler generates symbol reference information. This information is typically used by the Code Editor and the Project manager. Some other tools may require it. 

Definitions only

In combination with the Reference Info option, this option simply limits the reference information generated to just when identifiers are defined. If turned off, information would be generated for when identifiers are defined and when they are referenced. 

Assertions

Determines whether the compiler should include assert generation or not. When turned On assert calls will be included into the generated code. When turned Off assert calls will be omitted from the generated code. 

Use Debug DCUs

When turned on the compiler will switch to using the debug DCU path specified on the Directories tab. 

Messages

Show hints

Whether to report hints into the build log or not. 

Show warnings

Whether to report warnings into the build log or not. 

Treat hints as errors

Set if hints should be treated as an error and cause the compilation to fail if found. 

Treat warnings as errors

Set if warnings should be treat as an error and cause the compilation to fail if found. 

Linker

Linker Options

EXE and DLL options

Generate console application

Tells the linker to to flag the applications .exe as a console mode application. 

Generate .PDB debug info file

Tells the linker to generate a line-number table for each procedure for mapping source code to object-code.

Include remote debug symbols

Instructs the linker to generate remote debug symbol information for generated code. These are .rsm files. 

Generate .DRCIL file

Tells the linker to generate a .drcil file as part of its processing. 

Memory sizes

Min stack size

Instructs the linker as to the initial committed size of the stack. 

Max stack size

Instructs the linker as to the maximum reserved size of the stack. 

Image base

Instructs the linker as to the default load address for an application, DLL, or package. 

Description

EXE Description

The description string for the generated executable. Only usable for executable and DLL generation. 

Directories

Directories

Output directory

The directory to which generated binaries will be written. Whether this be a dll, dcu, or exe. 

Unit output directory

The directory to which all dcu files will be written. If left blank dcu files will be generated in the same location as the unit they relate to. 

Always use Search Path from bdsproj/dproj file

If enabled the compiler will be given the search path from the project settings of the supplied project. The search path supplied in this options dialog will be ignored. 

Search path

The search path to give to the compiler. The search path is where the compiler will look for source files.

Use Global Delphi Library Path

If enabled the compiler will be given the global library path instead of the library path specified in the action.

Library Path

The paths in which the compiler will look for libraries. 

Package output directory

The directory to which generated package files are written to. 

DCP output directory

The directory to which all dcp files will be written. If left blank then the global DCP output directory will be used. 

Conditionals

Use Conditionals from Project Settings File

If enabled the conditional defines listed in the project file will be used instead of the ones listed in the dialog. 

Conditional defines

The conditional defines which should be passed to the compiler. Each one should be separated with a semi-colon. 

Aliases

Unit aliases

A list of name/value pairs that define unit name aliases. Useful for backwards compatibility and where units have either change name, or been merged into one larger unit. 

Namespace Prefixes

Specify namespaces to automatically apply to uses clauses for unit names which belong to that scope. E.g. Specify FMX, so that FMX.Graphics can be specified as Graphics.

Default Namespace

Assembly Info

Attributes

Update Assembly Info

The list of attributes and their values which should be updated into the assembly information fields. 

  • No labels