If there was an unknown attribute (such as IDE'Gnat) in any member
project of an aggregate project, then gprbuild fails if it is invoked on
the aggregate project.
Tested on x86_64-pc-linux-gnu, committed on trunk
2011-10-13 Vincent Celier <[email protected]>
* prj-conf.adb (Get_Or_Create_Configuration_File): Call
Process_Project_Tree_Phase_1 with Packages_To_Check.
(Process_Project_And_Apply_Config): Ditto
* prj-part.ads, prj-part.adb, prj-pars.ads, prj-pars.adb (Parse):
Remove default for argument Packages_To_Check.
* prj-proc.adb (Recursive_Process): New argument
Packages_To_Check.
(Process): Ditto.
(Process_Project_Tree_Phase_1): Ditto.
(Recursive_Project.Process_Aggregated_Projects): Call
Prj.Part.Parse and Process_Project_Tree_Phase_1 with
Packages_To_Check.
* prj-proc.ads (Process): New argument Packages_To_Check
(Process_Project_Tree_Phase_1): Ditto
Index: prj-proc.adb
===================================================================
--- prj-proc.adb (revision 179894)
+++ prj-proc.adb (working copy)
@@ -145,6 +145,7 @@
procedure Recursive_Process
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
+ Packages_To_Check : String_List_Access;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
Env : in out Prj.Tree.Environment;
@@ -1347,6 +1348,7 @@
procedure Process
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
+ Packages_To_Check : String_List_Access;
Success : out Boolean;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
@@ -1361,6 +1363,7 @@
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Env => Env,
+ Packages_To_Check => Packages_To_Check,
Reset_Tree => Reset_Tree);
if Project_Qualifier_Of
@@ -2325,6 +2328,7 @@
procedure Process_Project_Tree_Phase_1
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
+ Packages_To_Check : String_List_Access;
Success : out Boolean;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
@@ -2349,6 +2353,7 @@
Recursive_Process
(Project => Project,
In_Tree => In_Tree,
+ Packages_To_Check => Packages_To_Check,
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Env => Env,
@@ -2482,6 +2487,7 @@
procedure Recursive_Process
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
+ Packages_To_Check : String_List_Access;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
Env : in out Prj.Tree.Environment;
@@ -2539,6 +2545,7 @@
Recursive_Process
(In_Tree => In_Tree,
Project => New_Project,
+ Packages_To_Check => Packages_To_Check,
From_Project_Node =>
Project_Node_Of
(With_Clause, From_Project_Node_Tree),
@@ -2596,6 +2603,7 @@
Prj.Part.Parse
(In_Tree => From_Project_Node_Tree,
Project => Loaded_Project,
+ Packages_To_Check => Packages_To_Check,
Project_File_Name => Get_Name_String (List.Path),
Errout_Handling => Prj.Part.Never_Finalize,
Current_Directory => Get_Name_String (Project.Directory.Name),
@@ -2627,6 +2635,7 @@
Process_Project_Tree_Phase_1
(In_Tree => Tree,
Project => List.Project,
+ Packages_To_Check => Packages_To_Check,
Success => Success,
From_Project_Node => Loaded_Project,
From_Project_Node_Tree => From_Project_Node_Tree,
@@ -2638,6 +2647,7 @@
Process_Project_Tree_Phase_1
(In_Tree => Tree,
Project => List.Project,
+ Packages_To_Check => Packages_To_Check,
Success => Success,
From_Project_Node => Loaded_Project,
From_Project_Node_Tree => From_Project_Node_Tree,
@@ -2859,6 +2869,7 @@
Recursive_Process
(In_Tree => In_Tree,
Project => Project.Extends,
+ Packages_To_Check => Packages_To_Check,
From_Project_Node => Extended_Project_Of
(Declaration_Node, From_Project_Node_Tree),
From_Project_Node_Tree => From_Project_Node_Tree,
Index: prj-proc.ads
===================================================================
--- prj-proc.ads (revision 179894)
+++ prj-proc.ads (working copy)
@@ -34,6 +34,7 @@
procedure Process_Project_Tree_Phase_1
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
+ Packages_To_Check : String_List_Access;
Success : out Boolean;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
@@ -68,6 +69,7 @@
procedure Process
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
+ Packages_To_Check : String_List_Access;
Success : out Boolean;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
Index: prj-part.adb
===================================================================
--- prj-part.adb (revision 179894)
+++ prj-part.adb (working copy)
@@ -443,7 +443,7 @@
Project : out Project_Node_Id;
Project_File_Name : String;
Errout_Handling : Errout_Mode := Always_Finalize;
- Packages_To_Check : String_List_Access := All_Packages;
+ Packages_To_Check : String_List_Access;
Store_Comments : Boolean := False;
Current_Directory : String := "";
Is_Config_File : Boolean;
Index: prj-part.ads
===================================================================
--- prj-part.ads (revision 179894)
+++ prj-part.ads (working copy)
@@ -42,7 +42,7 @@
Project : out Project_Node_Id;
Project_File_Name : String;
Errout_Handling : Errout_Mode := Always_Finalize;
- Packages_To_Check : String_List_Access := All_Packages;
+ Packages_To_Check : String_List_Access;
Store_Comments : Boolean := False;
Current_Directory : String := "";
Is_Config_File : Boolean;
Index: prj-pars.adb
===================================================================
--- prj-pars.adb (revision 179894)
+++ prj-pars.adb (working copy)
@@ -43,7 +43,7 @@
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
Project_File_Name : String;
- Packages_To_Check : String_List_Access := All_Packages;
+ Packages_To_Check : String_List_Access;
Reset_Tree : Boolean := True;
In_Node_Tree : Prj.Tree.Project_Node_Tree_Ref := null;
Env : in out Prj.Tree.Environment)
Index: prj-pars.ads
===================================================================
--- prj-pars.ads (revision 179894)
+++ prj-pars.ads (working copy)
@@ -36,7 +36,7 @@
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
Project_File_Name : String;
- Packages_To_Check : String_List_Access := All_Packages;
+ Packages_To_Check : String_List_Access;
Reset_Tree : Boolean := True;
In_Node_Tree : Prj.Tree.Project_Node_Tree_Ref := null;
Env : in out Prj.Tree.Environment);
Index: prj-conf.adb
===================================================================
--- prj-conf.adb (revision 179894)
+++ prj-conf.adb (working copy)
@@ -1324,6 +1324,7 @@
Prj.Proc.Process_Project_Tree_Phase_1
(In_Tree => Project_Tree,
Project => Config,
+ Packages_To_Check => Packages_To_Check,
Success => Success,
From_Project_Node => Config_Project_Node,
From_Project_Node_Tree => Project_Node_Tree,
@@ -1465,6 +1466,7 @@
Process_Project_Tree_Phase_1
(In_Tree => Project_Tree,
Project => Main_Project,
+ Packages_To_Check => Packages_To_Check,
Success => Success,
From_Project_Node => User_Project_Node,
From_Project_Node_Tree => Project_Node_Tree,