This section describes some possible ways to customize your projects when working in a cross environment. For more details on the project capabilities, see Project Handling.
When using the project editor to modify the project's properties, two
areas are particularly relevant to cross environments:
Cross environment
part of the General
page, and
Toolchains
part of the Languages
page.
In the Toolchains
section, you will typically either scan your system
to display found toolchains, and select the one corresponding to your cross
environment or use the Add button and manually select the desired cross
environment.
If needed, you can also modify manually some of the tools defined in this
toolchain in the Details
part of the Languages
page.
For example, assuming you have an Ada project, and using a powerpc VxWorks
configuration. Hitting the scan button, you should see the toolchain
powerpc-wrs-vxworks
appearing in the Toolchains
section.
Selecting this toolchain will change the Details
part, displaying the
relevant tools (e.g. Gnatls to
powerpc-wrs-vxworks-gnatls
and Debugger to
powerpc-wrs-vxworks-gdb
...).
The list of toolchains and their default values that can be selected when using the Add button can be modified via a custom xml file. See Customizing and Extending GPS and in particular Toolchains customization for further information.
If you are using an alternative run time, e.g. a soft float run time,
you need to add the option --RTS=soft-float
to the Gnatls
property, e.g: powerpc-wrs-vxworks-gnatls --RTS=soft-float
, and
add this same option to the Gnatmake switches in the switch editor.
See Switches for more details on the switch editor.
To modify your project to support configurations such as multiple targets, or multiple hosts, you can create scenario variables, and modify the setting of the Toolchains parameters based on the value of these variables. See Scenarios and Configuration Variables for more information on these variables.
For example, you may want to create a variable called Target
to handle
the different kind of targets handled in your project:
Similarly, you may define a Board
variable listing the different
boards used in your environment and change the Program host and Protocol
settings accordingly.
In some cases, it is useful to provide a different body file for a given
package (e.g. to handle target specific differences). A possible approach
in this case is to use a configuration variable (e.g. called TARGET
),
and specify a different naming scheme for this body file (in the project
properties, Naming
tab), based on the value of TARGET
.