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.