summaryrefslogtreecommitdiffstats
path: root/gcc/ada/prj-proc.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/prj-proc.adb')
-rw-r--r--gcc/ada/prj-proc.adb45
1 files changed, 33 insertions, 12 deletions
diff --git a/gcc/ada/prj-proc.adb b/gcc/ada/prj-proc.adb
index 1258e244ee4..170da259f9e 100644
--- a/gcc/ada/prj-proc.adb
+++ b/gcc/ada/prj-proc.adb
@@ -101,16 +101,22 @@ package body Prj.Proc is
-- recursively for all imported projects and a extended project, if any.
-- Then process the declarative items of the project.
- procedure Check (Project : in out Project_Id; Trusted_Mode : Boolean);
+ procedure Check
+ (Project : in out Project_Id;
+ Process_Languages : Languages_Processed;
+ Follow_Links : Boolean);
-- Set all projects to not checked, then call Recursive_Check for the
-- main project Project. Project is set to No_Project if errors occurred.
- -- See Prj.Nmsc.Ada_Check for information on Trusted_Mode.
+ -- See Prj.Nmsc.Ada_Check for information on Follow_Links.
- procedure Recursive_Check (Project : Project_Id; Trusted_Mode : Boolean);
+ procedure Recursive_Check
+ (Project : Project_Id;
+ Process_Languages : Languages_Processed;
+ Follow_Links : Boolean);
-- If Project is not marked as checked, mark it as checked, call
-- Check_Naming_Scheme for the project, then call itself for a
-- possible extended project and all the imported projects of Project.
- -- See Prj.Nmsc.Ada_Check for information on Trusted_Mode
+ -- See Prj.Nmsc.Ada_Check for information on Follow_Links
---------
-- Add --
@@ -207,7 +213,10 @@ package body Prj.Proc is
-- Check --
-----------
- procedure Check (Project : in out Project_Id; Trusted_Mode : Boolean) is
+ procedure Check
+ (Project : in out Project_Id;
+ Process_Languages : Languages_Processed;
+ Follow_Links : Boolean) is
begin
-- Make sure that all projects are marked as not checked
@@ -215,7 +224,8 @@ package body Prj.Proc is
Projects.Table (Index).Checked := False;
end loop;
- Recursive_Check (Project, Trusted_Mode);
+ Recursive_Check (Project, Process_Languages, Follow_Links);
+
end Check;
----------------
@@ -817,7 +827,8 @@ package body Prj.Proc is
Success : out Boolean;
From_Project_Node : Project_Node_Id;
Report_Error : Put_Line_Access;
- Trusted_Mode : Boolean := False)
+ Process_Languages : Languages_Processed := Ada_Language;
+ Follow_Links : Boolean := True)
is
Obj_Dir : Name_Id;
Extending : Project_Id;
@@ -841,7 +852,7 @@ package body Prj.Proc is
Extended_By => No_Project);
if Project /= No_Project then
- Check (Project, Trusted_Mode);
+ Check (Project, Process_Languages, Follow_Links);
end if;
-- If main project is an extending all project, set the object
@@ -1755,7 +1766,11 @@ package body Prj.Proc is
-- Recursive_Check --
---------------------
- procedure Recursive_Check (Project : Project_Id; Trusted_Mode : Boolean) is
+ procedure Recursive_Check
+ (Project : Project_Id;
+ Process_Languages : Languages_Processed;
+ Follow_Links : Boolean)
+ is
Data : Project_Data;
Imported_Project_List : Project_List := Empty_Project_List;
@@ -1776,7 +1791,7 @@ package body Prj.Proc is
-- Call itself for a possible extended project.
-- (if there is no extended project, then nothing happens).
- Recursive_Check (Data.Extends, Trusted_Mode);
+ Recursive_Check (Data.Extends, Process_Languages, Follow_Links);
-- Call itself for all imported projects
@@ -1784,7 +1799,7 @@ package body Prj.Proc is
while Imported_Project_List /= Empty_Project_List loop
Recursive_Check
(Project_Lists.Table (Imported_Project_List).Project,
- Trusted_Mode);
+ Process_Languages, Follow_Links);
Imported_Project_List :=
Project_Lists.Table (Imported_Project_List).Next;
end loop;
@@ -1795,7 +1810,13 @@ package body Prj.Proc is
Write_Line ("""");
end if;
- Prj.Nmsc.Ada_Check (Project, Error_Report, Trusted_Mode);
+ case Process_Languages is
+ when Ada_Language =>
+ Prj.Nmsc.Ada_Check (Project, Error_Report, Follow_Links);
+
+ when Other_Languages =>
+ Prj.Nmsc.Other_Languages_Check (Project, Error_Report);
+ end case;
end if;
end Recursive_Check;
OpenPOWER on IntegriCloud