Next: Naming Schemes, Previous: Packages in Project Files, Up: GNAT Project Manager
An attribute or variable defined in an imported or parent project can be used in expressions in the importing / extending project. Such an attribute or variable is denoted by an expanded name whose prefix is either the name of the project or the expanded name of a package within a project.
with "imported"; project Main extends "base" is Var1 := Imported.Var; Var2 := Base.Var & ".new"; package Builder is for Default_Switches ("Ada") use Imported.Builder'Ada_Switches & "-gnatg" & "-v"; end Builder; package Compiler is for Default_Switches ("Ada") use Base.Compiler'Ada_Switches; end Compiler; end Main;
In this example:
Var1
is a copy of the variable Var
defined
in the project file "imported.gpr"
Var2
is a copy of the value of variable Var
defined in the project file base.gpr, concatenated with ".new"
Default_Switches ("Ada")
in package
Builder
is a string list that includes in its value a copy of the value
of Ada_Switches
defined in the Builder
package
in project file imported.gpr plus two new elements:
"-gnatg"
and "-v";
Default_Switches ("Ada")
in package
Compiler
is a copy of the variable Ada_Switches
defined in the Compiler
package in project file base.gpr,
the project being extended.