with Ada.Assertions;
with Ada.Text_IO; use Ada.Text_IO;
with GPR2.Context;
with GPR2.Project.Tree;
with GPR2.Project.Registry.Attribute;
with GPR2.Project.Registry.Pack;
procedure Main is
package Attr renames GPR2.Project.Registry.Attribute;
package Pack renames GPR2.Project.Registry.Pack;
Ctx : GPR2.Context.Object;
PT : GPR2.Project.Tree.Object;
Qualified_Name : GPR2.Q_Attribute_Id
:= (Pack => GPR2."+" ("Foo"),
Attr => GPR2."+" ("Bar"));
procedure Case_1 is
begin
Attr.Add
(Name => Qualified_Name,
Index_Type => Attr.No_Index,
Value => Attr.Single,
Value_Case_Sensitive => True,
Is_Allowed_In => Attr.Everywhere);
exception
when Ada.Assertions.Assertion_Error =>
Put_Line (Item => "raised ADA.ASSERTIONS.ASSERTION_ERROR :"
& " failed precondition");
when others =>
Put_Line (Item => "Unexpected exception");
end Case_1;
procedure Case_2 is
begin
Pack.Add (Name => Qualified_Name.Pack,
Projects => Pack.Everywhere);
Attr.Add
(Name => Qualified_Name,
Index_Type => Attr.No_Index,
Value => Attr.Single,
Value_Case_Sensitive => True,
Is_Allowed_In => Attr.Everywhere);
end Case_2;
begin
Put_Line (Item => "Case 1 - Adding a custom attribute without pack");
Case_1;
if not Pack.Exists (Name => GPR2."+" ("Foo"))
and then not Attr.Exists (Q_Name => Qualified_Name)
then
Put_Line (Item => "Test OK !");
else
Put_Line (Item => "Test KO !");
end if;
Put_Line (Item => "Case 2 - Adding a custom attribute with pack");
Case_2;
if Pack.Exists (Name => GPR2."+" ("Foo"))
and then Attr.Exists (Q_Name => Qualified_Name)
then
Put_Line (Item => "Test OK !");
else
Put_Line (Item => "Test KO !");
end if;
end Main;