From: Vincent Celier Date: Thu, 31 Jul 2008 08:18:53 +0000 (+0200) Subject: prj.adb, [...]: Remove declarations that were for gprmake only X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c116b9806466d5f3cfa3d274af443fc538be52e3;p=platform%2Fupstream%2Fgcc.git prj.adb, [...]: Remove declarations that were for gprmake only 2008-07-31 Vincent Celier * prj.adb, clean.adb, prj-nmsc.adb, prj.ads: Remove declarations that were for gprmake only From-SVN: r138365 --- diff --git a/gcc/ada/clean.adb b/gcc/ada/clean.adb index 5db4c4e..30aa9a4 100644 --- a/gcc/ada/clean.adb +++ b/gcc/ada/clean.adb @@ -826,9 +826,6 @@ package body Clean is Index2 : Int; Lib_File : File_Name_Type; - Source_Id : Other_Source_Id; - Source : Other_Source; - Global_Archive : Boolean := False; begin @@ -881,7 +878,7 @@ package body Clean is -- Source_Dirs or Source_Files is specified as an empty list, -- so always look for Ada units in extending projects. - if Data.Langs (Ada_Language_Index) + if Data.Ada_Sources_Present or else Data.Extends /= No_Project then for Unit in Unit_Table.First .. @@ -1044,40 +1041,6 @@ package body Clean is end if; end if; - if Data.Other_Sources_Present then - - -- There is non-Ada code: delete the object files and - -- the dependency files if they exist. - - Source_Id := Data.First_Other_Source; - while Source_Id /= No_Other_Source loop - Source := - Project_Tree.Other_Sources.Table (Source_Id); - - if Is_Regular_File - (Get_Name_String (Source.Object_Name)) - then - Delete (Obj_Dir, Get_Name_String (Source.Object_Name)); - end if; - - if - Is_Regular_File (Get_Name_String (Source.Dep_Name)) - then - Delete (Obj_Dir, Get_Name_String (Source.Dep_Name)); - end if; - - Source_Id := Source.Next; - end loop; - - -- If it is a library with only non Ada sources, delete - -- the fake archive and the dependency file, if they exist. - - if Data.Library - and then not Data.Langs (Ada_Language_Index) - then - Clean_Archive (Project, Global => False); - end if; - end if; end; end if; diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb index d84ba7f..f3b40b3 100644 --- a/gcc/ada/prj-nmsc.adb +++ b/gcc/ada/prj-nmsc.adb @@ -65,9 +65,6 @@ package body Prj.Nmsc is ALI_Suffix : constant String := ".ali"; -- File suffix for ali files - Object_Suffix : constant String := Get_Target_Object_Suffix.all; - -- File suffix for object files - type Name_Location is record Name : File_Name_Type; Location : Source_Ptr; @@ -267,20 +264,6 @@ package body Prj.Nmsc is Data : in out Project_Data); -- Check the configuration attributes for the project - procedure Check_For_Source - (File_Name : File_Name_Type; - Path_Name : Path_Name_Type; - Project : Project_Id; - In_Tree : Project_Tree_Ref; - Data : in out Project_Data; - Location : Source_Ptr; - Language : Language_Index; - Suffix : String; - Naming_Exception : Boolean); - -- Check if a file, with name File_Name and path Path_Name, in a source - -- directory is a source for language Language in project Project of - -- project tree In_Tree. ??? - procedure Check_If_Externally_Built (Project : Project_Id; In_Tree : Project_Tree_Ref; @@ -369,15 +352,6 @@ package body Prj.Nmsc is -- Current_Dir should represent the current directory, and is passed for -- efficiency to avoid system calls to recompute it. - procedure Find_Sources - (Project : Project_Id; - In_Tree : Project_Tree_Ref; - Data : in out Project_Data; - For_Language : Language_Index; - Current_Dir : String); - -- Find all the sources in all of the source directories of a project for - -- a specified language. - procedure Search_Directories (Project : Project_Id; In_Tree : Project_Tree_Ref; @@ -467,8 +441,7 @@ package body Prj.Nmsc is -- Source_Names. procedure Find_Explicit_Sources - (Lang : Language_Index; - Current_Dir : String; + (Current_Dir : String; Project : Project_Id; In_Tree : Project_Tree_Ref; Data : in out Project_Data); @@ -566,16 +539,6 @@ package body Prj.Nmsc is -- Current_Dir should represent the current directory, and is passed for -- efficiency to avoid system calls to recompute it. - procedure Record_Other_Sources - (Project : Project_Id; - In_Tree : Project_Tree_Ref; - Data : in out Project_Data; - Language : Language_Index; - Naming_Exceptions : Boolean); - -- Record the sources of a language in a project. When Naming_Exceptions is - -- True, mark the found sources as such, to later remove those that are not - -- named in a list of sources. - procedure Remove_Source (Id : Source_Id; Replaced_By : Source_Id; @@ -597,13 +560,6 @@ package body Prj.Nmsc is (Data : Project_Data; In_Tree : Project_Tree_Ref); -- List all the source directories of a project - function Suffix_For - (Language : Language_Index; - Naming : Naming_Data; - In_Tree : Project_Tree_Ref) return File_Name_Type; - -- Get the suffix for the source of a language from a package naming. If - -- not specified, return the default for the language. - procedure Warn_If_Not_Sources (Project : Project_Id; In_Tree : Project_Tree_Ref; @@ -2449,287 +2405,6 @@ package body Prj.Nmsc is end loop; end Check_Configuration; - ---------------------- - -- Check_For_Source -- - ---------------------- - - procedure Check_For_Source - (File_Name : File_Name_Type; - Path_Name : Path_Name_Type; - Project : Project_Id; - In_Tree : Project_Tree_Ref; - Data : in out Project_Data; - Location : Source_Ptr; - Language : Language_Index; - Suffix : String; - Naming_Exception : Boolean) - is - Name : String := Get_Name_String (File_Name); - Real_Location : Source_Ptr := Location; - - begin - Canonical_Case_File_Name (Name); - - -- A file is a source of a language if Naming_Exception is True (case - -- of naming exceptions) or if its file name ends with the suffix. - - if Naming_Exception - or else - (Name'Length > Suffix'Length - and then - Name (Name'Last - Suffix'Length + 1 .. Name'Last) = Suffix) - then - if Real_Location = No_Location then - Real_Location := Data.Location; - end if; - - declare - Path_Id : Path_Name_Type; - C_Path_Id : Path_Name_Type; - -- The path name id (in canonical case) - - File_Id : File_Name_Type; - -- The file name id (in canonical case) - - Obj_Id : File_Name_Type; - -- The object file name - - Obj_Path_Id : Path_Name_Type; - -- The object path name - - Dep_Id : File_Name_Type; - -- The dependency file name - - Dep_Path_Id : Path_Name_Type; - -- The dependency path name - - Dot_Pos : Natural := 0; - -- Position of the last dot in Name - - Source : Other_Source; - Source_Id : Other_Source_Id := Data.First_Other_Source; - - begin - -- Get the file name id - - if Osint.File_Names_Case_Sensitive then - File_Id := File_Name; - else - Name_Len := Name'Length; - Name_Buffer (1 .. Name_Len) := Name; - File_Id := Name_Find; - end if; - - -- Get the path name id - - Path_Id := Path_Name; - - if Osint.File_Names_Case_Sensitive then - C_Path_Id := Path_Name; - else - declare - C_Path : String := Get_Name_String (Path_Name); - begin - Canonical_Case_File_Name (C_Path); - Name_Len := C_Path'Length; - Name_Buffer (1 .. Name_Len) := C_Path; - C_Path_Id := Name_Find; - end; - end if; - - -- Find the position of the last dot - - for J in reverse Name'Range loop - if Name (J) = '.' then - Dot_Pos := J; - exit; - end if; - end loop; - - if Dot_Pos <= Name'First then - Dot_Pos := Name'Last + 1; - end if; - - -- Compute the object file name - - Get_Name_String (File_Id); - Name_Len := Dot_Pos - Name'First; - - for J in Object_Suffix'Range loop - Name_Len := Name_Len + 1; - Name_Buffer (Name_Len) := Object_Suffix (J); - end loop; - - Obj_Id := Name_Find; - - -- Compute the object path name - - Get_Name_String (Data.Object_Directory.Display_Name); - - if Name_Buffer (Name_Len) /= Directory_Separator - and then Name_Buffer (Name_Len) /= '/' - then - Name_Len := Name_Len + 1; - Name_Buffer (Name_Len) := Directory_Separator; - end if; - - Add_Str_To_Name_Buffer (Get_Name_String (Obj_Id)); - Obj_Path_Id := Name_Find; - - -- Compute the dependency file name - - Get_Name_String (File_Id); - Name_Len := Dot_Pos - Name'First + 1; - Name_Buffer (Name_Len) := '.'; - Name_Len := Name_Len + 1; - Name_Buffer (Name_Len) := 'd'; - Dep_Id := Name_Find; - - -- Compute the dependency path name - - Get_Name_String (Data.Object_Directory.Display_Name); - - if Name_Buffer (Name_Len) /= Directory_Separator - and then Name_Buffer (Name_Len) /= '/' - then - Name_Len := Name_Len + 1; - Name_Buffer (Name_Len) := Directory_Separator; - end if; - - Add_Str_To_Name_Buffer (Get_Name_String (Dep_Id)); - Dep_Path_Id := Name_Find; - - -- Check if source is already in the list of source for this - -- project: it may have already been specified as a naming - -- exception for the same language or an other language, or - -- they may be two identical file names in different source - -- directories. - - while Source_Id /= No_Other_Source loop - Source := In_Tree.Other_Sources.Table (Source_Id); - - if Source.File_Name = File_Id then - -- Two sources of different languages cannot have the same - -- file name. - - if Source.Language /= Language then - Error_Msg_File_1 := File_Name; - Error_Msg - (Project, In_Tree, - "{ cannot be a source of several languages", - Real_Location); - return; - - -- No problem if a file has already been specified as - -- a naming exception of this language. - - elsif Source.Path_Name = C_Path_Id then - - -- Reset the naming exception flag, if this is not a - -- naming exception. - - if not Naming_Exception then - In_Tree.Other_Sources.Table - (Source_Id).Naming_Exception := False; - end if; - - return; - - -- There are several files with the same names, but the - -- order of the source directories is known (no /**): - -- only the first one encountered is kept, the other ones - -- are ignored. - - elsif Data.Known_Order_Of_Source_Dirs then - return; - - -- But it is an error if the order of the source directories - -- is not known. - - else - Error_Msg_File_1 := File_Name; - Error_Msg - (Project, In_Tree, - "{ is found in several source directories", - Real_Location); - return; - end if; - - -- Two sources with different file names cannot have the same - -- object file name. - - elsif Source.Object_Name = Obj_Id then - Error_Msg_File_1 := File_Id; - Error_Msg_File_2 := Source.File_Name; - Error_Msg_File_3 := Obj_Id; - Error_Msg - (Project, In_Tree, - "{ and { have the same object file {", - Real_Location); - return; - end if; - - Source_Id := Source.Next; - end loop; - - if Current_Verbosity = High then - Write_Str (" found "); - Display_Language_Name (Language); - Write_Str (" source """); - Write_Str (Get_Name_String (File_Name)); - Write_Line (""""); - Write_Str (" object path = "); - Write_Line (Get_Name_String (Obj_Path_Id)); - end if; - - -- Create the Other_Source record - - Source := - (Language => Language, - File_Name => File_Id, - Path_Name => Path_Id, - Source_TS => File_Stamp (Path_Id), - Object_Name => Obj_Id, - Object_Path => Obj_Path_Id, - Object_TS => File_Stamp (Obj_Path_Id), - Dep_Name => Dep_Id, - Dep_Path => Dep_Path_Id, - Dep_TS => File_Stamp (Dep_Path_Id), - Naming_Exception => Naming_Exception, - Next => No_Other_Source); - - -- And add it to the Other_Sources table - - Other_Source_Table.Increment_Last (In_Tree.Other_Sources); - In_Tree.Other_Sources.Table - (Other_Source_Table.Last (In_Tree.Other_Sources)) := Source; - - -- There are sources of languages other than Ada in this project - - Data.Other_Sources_Present := True; - - -- And there are sources of this language in this project - - Set (Language, True, Data, In_Tree); - - -- Add this source to the list of sources of languages other than - -- Ada of the project. - - if Data.First_Other_Source = No_Other_Source then - Data.First_Other_Source := - Other_Source_Table.Last (In_Tree.Other_Sources); - - else - In_Tree.Other_Sources.Table (Data.Last_Other_Source).Next := - Other_Source_Table.Last (In_Tree.Other_Sources); - end if; - - Data.Last_Other_Source := - Other_Source_Table.Last (In_Tree.Other_Sources); - end; - end if; - end Check_For_Source; - ------------------------------- -- Check_If_Externally_Built -- ------------------------------- @@ -4683,11 +4358,8 @@ package body Prj.Nmsc is (Name => Name_Ada, Next => No_Name_List); -- Attribute Languages is not specified. So, it defaults to - -- a project of language Ada only. - - Data.Langs (Ada_Language_Index) := True; - - -- No sources of languages other than Ada + -- a project of language Ada only. No sources of languages + -- other than Ada Data.Other_Sources_Present := False; @@ -4757,13 +4429,10 @@ package body Prj.Nmsc is NL_Id : Name_List_Index := No_Name_List; begin - if Get_Mode = Ada_Only then - - -- Assume that there is no language specified yet + -- Assume there are no language declared - Data.Other_Sources_Present := False; - Data.Ada_Sources_Present := False; - end if; + Data.Ada_Sources_Present := False; + Data.Other_Sources_Present := False; -- If there are no languages declared, there are no sources @@ -4820,21 +4489,9 @@ package body Prj.Nmsc is (Lang_Name, No_Name_List); if Get_Mode = Ada_Only then - Index := Language_Indexes.Get (Lang_Name); - - if Index = No_Language_Index then - Add_Language_Name (Lang_Name); - Index := Last_Language_Index; - end if; - - Set (Index, True, Data, In_Tree); - Set (Language_Processing => - Default_Language_Processing_Data, - For_Language => Index, - In_Project => Data, - In_Tree => In_Tree); + -- Check for language Ada - if Index = Ada_Language_Index then + if Lang_Name = Name_Ada then Data.Ada_Sources_Present := True; else @@ -5936,155 +5593,6 @@ package body Prj.Nmsc is end Find_Ada_Sources; - ------------------ - -- Find_Sources -- - ------------------ - - procedure Find_Sources - (Project : Project_Id; - In_Tree : Project_Tree_Ref; - Data : in out Project_Data; - For_Language : Language_Index; - Current_Dir : String) - is - Source_Dir : String_List_Id; - Element : String_Element; - Dir : Dir_Type; - Current_Source : String_List_Id := Nil_String; - Source_Recorded : Boolean := False; - - begin - if Current_Verbosity = High then - Write_Line ("Looking for sources:"); - end if; - - -- Loop through subdirectories - - Source_Dir := Data.Source_Dirs; - while Source_Dir /= Nil_String loop - begin - Source_Recorded := False; - Element := In_Tree.String_Elements.Table (Source_Dir); - - if Element.Value /= No_Name then - Get_Name_String (Element.Display_Value); - - declare - Source_Directory : constant String := - Name_Buffer (1 .. Name_Len) & - Directory_Separator; - - Dir_Last : constant Natural := - Compute_Directory_Last (Source_Directory); - - begin - if Current_Verbosity = High then - Write_Str ("Source_Dir = "); - Write_Line (Source_Directory); - end if; - - -- We look to every entry in the source directory - - Open (Dir, Source_Directory - (Source_Directory'First .. Dir_Last)); - - loop - Read (Dir, Name_Buffer, Name_Len); - - if Current_Verbosity = High then - Write_Str (" Checking "); - Write_Line (Name_Buffer (1 .. Name_Len)); - end if; - - exit when Name_Len = 0; - - declare - File_Name : constant File_Name_Type := Name_Find; - Path : constant String := - Normalize_Pathname - (Name => Name_Buffer (1 .. Name_Len), - Directory => Source_Directory - (Source_Directory'First .. Dir_Last), - Resolve_Links => Opt.Follow_Links_For_Files, - Case_Sensitive => True); - Path_Name : Path_Name_Type; - - begin - Name_Len := Path'Length; - Name_Buffer (1 .. Name_Len) := Path; - Path_Name := Name_Find; - - if For_Language = Ada_Language_Index then - - -- We attempt to register it as a source. However, - -- there is no error if the file does not contain - -- a valid source. But there is an error if we have - -- a duplicate unit name. - - Record_Ada_Source - (File_Name => File_Name, - Path_Name => Path_Name, - Project => Project, - In_Tree => In_Tree, - Data => Data, - Location => No_Location, - Current_Source => Current_Source, - Source_Recorded => Source_Recorded, - Current_Dir => Current_Dir); - - else - Check_For_Source - (File_Name => File_Name, - Path_Name => Path_Name, - Project => Project, - In_Tree => In_Tree, - Data => Data, - Location => No_Location, - Language => For_Language, - Suffix => - Body_Suffix_Of (For_Language, Data, In_Tree), - Naming_Exception => False); - end if; - end; - end loop; - - Close (Dir); - end; - end if; - - exception - when Directory_Error => - null; - end; - - if Source_Recorded then - In_Tree.String_Elements.Table (Source_Dir).Flag := - True; - end if; - - Source_Dir := Element.Next; - end loop; - - if Current_Verbosity = High then - Write_Line ("end Looking for sources."); - end if; - - if For_Language = Ada_Language_Index then - - -- If we have looked for sources and found none, then it is an error, - -- except if it is an extending project. If a non extending project - -- is not supposed to contain any source files, then never call - -- Find_Sources. - - if Current_Source /= Nil_String then - Data.Ada_Sources_Present := True; - - elsif Data.Extends = No_Project then - Report_No_Sources (Project, "Ada", In_Tree, Data.Location); - end if; - end if; - end Find_Sources; - -------------------------------- -- Free_Ada_Naming_Exceptions -- -------------------------------- @@ -7606,8 +7114,7 @@ package body Prj.Nmsc is --------------------------- procedure Find_Explicit_Sources - (Lang : Language_Index; - Current_Dir : String; + (Current_Dir : String; Project : Project_Id; In_Tree : Project_Tree_Ref; Data : in out Project_Data) @@ -7654,18 +7161,9 @@ package body Prj.Nmsc is Data.Ada_Sources_Present := Current /= Nil_String; end if; - -- If we are processing other languages in the case of gprmake, - -- we should not reset the list of sources, which was already - -- initialized for the Ada files. - - if Get_Mode /= Ada_Only or else Lang /= Ada_Language_Index then + if Get_Mode = Multi_Language then if Current = Nil_String then - case Get_Mode is - when Ada_Only => - Data.Source_Dirs := Nil_String; - when Multi_Language => - Data.First_Language_Processing := No_Language_Index; - end case; + Data.First_Language_Processing := No_Language_Index; -- This project contains no source. For projects that -- don't extend other projects, this also means that @@ -7743,17 +7241,8 @@ package body Prj.Nmsc is end loop; if Get_Mode = Ada_Only then - if Lang = Ada_Language_Index then - Get_Path_Names_And_Record_Ada_Sources - (Project, In_Tree, Data, Current_Dir); - else - Record_Other_Sources - (Project => Project, - In_Tree => In_Tree, - Data => Data, - Language => Lang, - Naming_Exceptions => False); - end if; + Get_Path_Names_And_Record_Ada_Sources + (Project, In_Tree, Data, Current_Dir); end if; end; @@ -7787,18 +7276,8 @@ package body Prj.Nmsc is if Get_Mode = Ada_Only then -- Look in the source directories to find those sources - if Lang = Ada_Language_Index then - Get_Path_Names_And_Record_Ada_Sources - (Project, In_Tree, Data, Current_Dir); - - else - Record_Other_Sources - (Project => Project, - In_Tree => In_Tree, - Data => Data, - Language => Lang, - Naming_Exceptions => False); - end if; + Get_Path_Names_And_Record_Ada_Sources + (Project, In_Tree, Data, Current_Dir); end if; end if; end; @@ -7808,22 +7287,9 @@ package body Prj.Nmsc is -- specified. Find all the files that satisfy the naming -- scheme in all the source directories. - case Get_Mode is - when Ada_Only => - if Lang = Ada_Language_Index then - Find_Ada_Sources (Project, In_Tree, Data, Current_Dir); - else - -- Find all the files that satisfy the naming scheme in - -- all the source directories. All the naming exceptions - -- that effectively exist are also part of the source - -- of this language. - - Find_Sources (Project, In_Tree, Data, Lang, Current_Dir); - end if; - - when Multi_Language => - null; - end case; + if Get_Mode = Ada_Only then + Find_Ada_Sources (Project, In_Tree, Data, Current_Dir); + end if; end if; if Get_Mode = Multi_Language then @@ -7888,7 +7354,6 @@ package body Prj.Nmsc is end if; if Get_Mode = Ada_Only - and then Lang = Ada_Language_Index and then Data.Extends = No_Project then -- We should have found at least one source, if not report an error @@ -8829,9 +8294,6 @@ package body Prj.Nmsc is procedure Remove_Locally_Removed_Files_From_Units; -- Mark all locally removed sources as such in the Units table - procedure Process_Other_Sources_In_Ada_Only_Mode; - -- Find sources for language other than Ada when in Ada_Only mode - procedure Process_Sources_In_Multi_Language_Mode; -- Find all source files when in multi language mode @@ -8896,116 +8358,6 @@ package body Prj.Nmsc is end Remove_Locally_Removed_Files_From_Units; -------------------------------------------- - -- Process_Other_Sources_In_Ada_Only_Mode -- - -------------------------------------------- - - procedure Process_Other_Sources_In_Ada_Only_Mode is - begin - -- Set Source_Present to False. It will be set back to True - -- whenever a source is found. - - Data.Other_Sources_Present := False; - for Lang in Ada_Language_Index + 1 .. Last_Language_Index loop - - -- For each language (other than Ada) in the project file - - if Is_Present (Lang, Data, In_Tree) then - - -- Reset the indication that there are sources of this - -- language. It will be set back to True whenever we find - -- a source of the language. - - Set (Lang, False, Data, In_Tree); - - -- First, get the source suffix for the language - - Set (Suffix => Suffix_For (Lang, Data.Naming, In_Tree), - For_Language => Lang, - In_Project => Data, - In_Tree => In_Tree); - - -- Then, deal with the naming exceptions, if any - - Source_Names.Reset; - - declare - Naming_Exceptions : constant Variable_Value := - Value_Of - (Index => Language_Names.Table (Lang), - Src_Index => 0, - In_Array => Data.Naming.Implementation_Exceptions, - In_Tree => In_Tree); - Element_Id : String_List_Id; - Element : String_Element; - File_Id : File_Name_Type; - Source_Found : Boolean := False; - - begin - -- If there are naming exceptions, look through them one - -- by one. - - if Naming_Exceptions /= Nil_Variable_Value then - Element_Id := Naming_Exceptions.Values; - - while Element_Id /= Nil_String loop - Element := In_Tree.String_Elements.Table (Element_Id); - - if Osint.File_Names_Case_Sensitive then - File_Id := File_Name_Type (Element.Value); - else - Get_Name_String (Element.Value); - Canonical_Case_File_Name - (Name_Buffer (1 .. Name_Len)); - File_Id := Name_Find; - end if; - - -- Put each naming exception in the Source_Names hash - -- table, but if there are repetition, don't bother - -- after the first instance. - - if Source_Names.Get (File_Id) = No_Name_Location then - Source_Found := True; - Source_Names.Set - (File_Id, - (Name => File_Id, - Location => Element.Location, - Source => No_Source, - Except => False, - Found => False)); - end if; - - Element_Id := Element.Next; - end loop; - - -- If there is at least one naming exception, record - -- those that are found in the source directories. - - if Source_Found then - Record_Other_Sources - (Project => Project, - In_Tree => In_Tree, - Data => Data, - Language => Lang, - Naming_Exceptions => True); - end if; - - end if; - end; - - -- Now, check if a list of sources is declared either through - -- a string list (attribute Source_Files) or a text file - -- (attribute Source_List_File). If a source list is declared, - -- we will consider only those naming exceptions that are - -- on the list. - - Source_Names.Reset; - Find_Explicit_Sources - (Lang, Current_Dir, Project, In_Tree, Data); - end if; - end loop; - end Process_Other_Sources_In_Ada_Only_Mode; - - -------------------------------------------- -- Process_Sources_In_Multi_Language_Mode -- -------------------------------------------- @@ -9077,7 +8429,7 @@ package body Prj.Nmsc is end loop; Find_Explicit_Sources - (Ada_Language_Index, Current_Dir, Project, In_Tree, Data); + (Current_Dir, Project, In_Tree, Data); -- Mark as such the sources that are declared as excluded @@ -9219,15 +8571,10 @@ package body Prj.Nmsc is case Get_Mode is when Ada_Only => if Is_A_Language (In_Tree, Data, Name_Ada) then - Find_Explicit_Sources - (Ada_Language_Index, Current_Dir, Project, In_Tree, Data); + Find_Explicit_Sources (Current_Dir, Project, In_Tree, Data); Remove_Locally_Removed_Files_From_Units; end if; - if Data.Other_Sources_Present then - Process_Other_Sources_In_Ada_Only_Mode; - end if; - when Multi_Language => if Data.First_Language_Processing /= No_Language_Index then Process_Sources_In_Multi_Language_Mode; @@ -9624,179 +8971,6 @@ package body Prj.Nmsc is end if; end Record_Ada_Source; - -------------------------- - -- Record_Other_Sources -- - -------------------------- - - procedure Record_Other_Sources - (Project : Project_Id; - In_Tree : Project_Tree_Ref; - Data : in out Project_Data; - Language : Language_Index; - Naming_Exceptions : Boolean) - is - Source_Dir : String_List_Id; - Element : String_Element; - Path : Path_Name_Type; - Dir : Dir_Type; - Canonical_Name : File_Name_Type; - Name_Str : String (1 .. 1_024); - Last : Natural := 0; - NL : Name_Location; - First_Error : Boolean := True; - Suffix : constant String := - Body_Suffix_Of (Language, Data, In_Tree); - - begin - Source_Dir := Data.Source_Dirs; - while Source_Dir /= Nil_String loop - Element := In_Tree.String_Elements.Table (Source_Dir); - - declare - Dir_Path : constant String := - Get_Name_String (Element.Display_Value); - begin - if Current_Verbosity = High then - Write_Str ("checking directory """); - Write_Str (Dir_Path); - Write_Str (""" for "); - - if Naming_Exceptions then - Write_Str ("naming exceptions"); - else - Write_Str ("sources"); - end if; - - Write_Str (" of Language "); - Display_Language_Name (Language); - end if; - - Open (Dir, Dir_Path); - - loop - Read (Dir, Name_Str, Last); - exit when Last = 0; - - if Is_Regular_File - (Dir_Path & Directory_Separator & Name_Str (1 .. Last)) - then - Name_Len := Last; - Name_Buffer (1 .. Name_Len) := Name_Str (1 .. Last); - Canonical_Case_File_Name (Name_Buffer (1 .. Name_Len)); - Canonical_Name := Name_Find; - NL := Source_Names.Get (Canonical_Name); - - if NL /= No_Name_Location then - if NL.Found then - if not Data.Known_Order_Of_Source_Dirs then - Error_Msg_File_1 := Canonical_Name; - Error_Msg - (Project, In_Tree, - "{ is found in several source directories", - NL.Location); - end if; - - else - NL.Found := True; - Source_Names.Set (Canonical_Name, NL); - Name_Len := Dir_Path'Length; - Name_Buffer (1 .. Name_Len) := Dir_Path; - Add_Char_To_Name_Buffer (Directory_Separator); - Add_Str_To_Name_Buffer (Name_Str (1 .. Last)); - Path := Name_Find; - - Check_For_Source - (File_Name => Canonical_Name, - Path_Name => Path, - Project => Project, - In_Tree => In_Tree, - Data => Data, - Location => NL.Location, - Language => Language, - Suffix => Suffix, - Naming_Exception => Naming_Exceptions); - end if; - end if; - end if; - end loop; - - Close (Dir); - end; - - Source_Dir := Element.Next; - end loop; - - if not Naming_Exceptions then - NL := Source_Names.Get_First; - - -- It is an error if a source file name in a source list or - -- in a source list file is not found. - - while NL /= No_Name_Location loop - if not NL.Found then - Err_Vars.Error_Msg_File_1 := NL.Name; - - if First_Error then - Error_Msg - (Project, In_Tree, "source file { cannot be found", - NL.Location); - First_Error := False; - - else - Error_Msg - (Project, In_Tree, "\source file { cannot be found", - NL.Location); - end if; - end if; - - NL := Source_Names.Get_Next; - end loop; - - -- Any naming exception of this language that is not in a list - -- of sources must be removed. - - declare - Source_Id : Other_Source_Id; - Prev_Id : Other_Source_Id; - Source : Other_Source; - - begin - Prev_Id := No_Other_Source; - Source_Id := Data.First_Other_Source; - while Source_Id /= No_Other_Source loop - Source := In_Tree.Other_Sources.Table (Source_Id); - - if Source.Language = Language - and then Source.Naming_Exception - then - if Current_Verbosity = High then - Write_Str ("Naming exception """); - Write_Str (Get_Name_String (Source.File_Name)); - Write_Str (""" is not in the list of sources,"); - Write_Line (" so it is removed."); - end if; - - if Prev_Id = No_Other_Source then - Data.First_Other_Source := Source.Next; - else - In_Tree.Other_Sources.Table (Prev_Id).Next := Source.Next; - end if; - - Source_Id := Source.Next; - - if Source_Id = No_Other_Source then - Data.Last_Other_Source := Prev_Id; - end if; - - else - Prev_Id := Source_Id; - Source_Id := Source.Next; - end if; - end loop; - end; - end if; - end Record_Other_Sources; - ------------------- -- Remove_Source -- ------------------- @@ -9971,52 +9145,6 @@ package body Prj.Nmsc is Write_Line ("end Source_Dirs."); end Show_Source_Dirs; - ---------------- - -- Suffix_For -- - ---------------- - - function Suffix_For - (Language : Language_Index; - Naming : Naming_Data; - In_Tree : Project_Tree_Ref) return File_Name_Type - is - Suffix : constant Variable_Value := - Value_Of - (Index => Language_Names.Table (Language), - Src_Index => 0, - In_Array => Naming.Body_Suffix, - In_Tree => In_Tree); - - begin - -- If no suffix for this language in package Naming, use the default - - if Suffix = Nil_Variable_Value then - Name_Len := 0; - - case Language is - when Ada_Language_Index => - Add_Str_To_Name_Buffer (".adb"); - - when C_Language_Index => - Add_Str_To_Name_Buffer (".c"); - - when C_Plus_Plus_Language_Index => - Add_Str_To_Name_Buffer (".cpp"); - - when others => - return No_File; - end case; - - -- Otherwise use the one specified - - else - Get_Name_String (Suffix.Value); - end if; - - Canonical_Case_File_Name (Name_Buffer (1 .. Name_Len)); - return Name_Find; - end Suffix_For; - ------------------------- -- Warn_If_Not_Sources -- ------------------------- diff --git a/gcc/ada/prj.adb b/gcc/ada/prj.adb index d838b11..c59b2fd 100644 --- a/gcc/ada/prj.adb +++ b/gcc/ada/prj.adb @@ -32,9 +32,11 @@ with Prj.Attr; with Prj.Env; with Prj.Err; use Prj.Err; with Snames; use Snames; +with Table; with Uintp; use Uintp; with System.Case_Util; use System.Case_Util; +with System.HTable; package body Prj is @@ -50,8 +52,6 @@ package body Prj is The_Empty_String : Name_Id; - Name_C_Plus_Plus : Name_Id; - Default_Ada_Spec_Suffix_Id : File_Name_Type; Default_Ada_Body_Suffix_Id : File_Name_Type; Slash_Id : Path_Name_Type; @@ -83,9 +83,7 @@ package body Prj is Specs => No_Array_Element, Bodies => No_Array_Element, Specification_Exceptions => No_Array_Element, - Implementation_Exceptions => No_Array_Element, - Impl_Suffixes => No_Impl_Suffixes, - Supp_Suffixes => No_Supp_Language_Index); + Implementation_Exceptions => No_Array_Element); Project_Empty : constant Project_Data := (Qualifier => Unspecified, @@ -113,6 +111,8 @@ package body Prj is Lib_Auto_Init => False, Libgnarl_Needed => Unknown, Symbol_Data => No_Symbols, + Ada_Sources_Present => True, + Other_Sources_Present => True, Ada_Sources => Nil_String, Sources => Nil_String, First_Source => No_Source, @@ -152,17 +152,7 @@ package body Prj is Seen => False, Need_To_Build_Lib => False, Depth => 0, - Unkept_Comments => False, - Langs => No_Languages, - Supp_Languages => No_Supp_Language_Index, - Ada_Sources_Present => True, - Other_Sources_Present => True, - First_Other_Source => No_Other_Source, - Last_Other_Source => No_Other_Source, - First_Lang_Processing => - Default_First_Language_Processing_Data, - Supp_Language_Processing => - No_Supp_Language_Index); + Unkept_Comments => False); package Temp_Files is new Table.Table (Table_Component_Type => Path_Name_Type, @@ -174,18 +164,6 @@ package body Prj is -- Table to store the path name of all the created temporary files, so that -- they can be deleted at the end, or when the program is interrupted. - ----------------------- - -- Add_Language_Name -- - ----------------------- - - procedure Add_Language_Name (Name : Name_Id) is - begin - Last_Language_Index := Last_Language_Index + 1; - Language_Indexes.Set (Name, Last_Language_Index); - Language_Names.Increment_Last; - Language_Names.Table (Last_Language_Index) := Name; - end Add_Language_Name; - ------------------- -- Add_To_Buffer -- ------------------- @@ -341,21 +319,6 @@ package body Prj is return ""; end Body_Suffix_Of; - function Body_Suffix_Of - (Language : Language_Index; - In_Project : Project_Data; - In_Tree : Project_Tree_Ref) return String - is - Suffix_Id : constant File_Name_Type := - Suffix_Of (Language, In_Project, In_Tree); - begin - if Suffix_Id /= No_File then - return Get_Name_String (Suffix_Id); - else - return "." & Get_Name_String (Language_Names.Table (Language)); - end if; - end Body_Suffix_Of; - ----------------------------- -- Default_Ada_Body_Suffix -- ----------------------------- @@ -430,17 +393,6 @@ package body Prj is Write_Str (Name_Buffer (1 .. Name_Len)); end Display_Language_Name; - --------------------------- - -- Display_Language_Name -- - --------------------------- - - procedure Display_Language_Name (Language : Language_Index) is - begin - Get_Name_String (Language_Names.Table (Language)); - To_Upper (Name_Buffer (1 .. 1)); - Write_Str (Name_Buffer (1 .. Name_Len)); - end Display_Language_Name; - ---------------- -- Empty_File -- ---------------- @@ -638,22 +590,12 @@ package body Prj is Name_Len := 1; Name_Buffer (1) := '/'; Slash_Id := Name_Find; - Name_Len := 3; - Name_Buffer (1 .. 3) := "c++"; - Name_C_Plus_Plus := Name_Find; Prj.Env.Initialize; Prj.Attr.Initialize; Set_Name_Table_Byte (Name_Project, Token_Type'Pos (Tok_Project)); Set_Name_Table_Byte (Name_Extends, Token_Type'Pos (Tok_Extends)); Set_Name_Table_Byte (Name_External, Token_Type'Pos (Tok_External)); - - Language_Indexes.Reset; - Last_Language_Index := No_Language_Index; - Language_Names.Init; - Add_Language_Name (Name_Ada); - Add_Language_Name (Name_C); - Add_Language_Name (Name_C_Plus_Plus); end if; if Tree /= No_Project_Tree then @@ -729,84 +671,6 @@ package body Prj is return False; end Is_Extending; - ---------------- - -- Is_Present -- - ---------------- - - function Is_Present - (Language : Language_Index; - In_Project : Project_Data; - In_Tree : Project_Tree_Ref) return Boolean - is - begin - case Language is - when No_Language_Index => - return False; - - when First_Language_Indexes => - return In_Project.Langs (Language); - - when others => - declare - Supp : Supp_Language; - Supp_Index : Supp_Language_Index; - - begin - Supp_Index := In_Project.Supp_Languages; - while Supp_Index /= No_Supp_Language_Index loop - Supp := In_Tree.Present_Languages.Table (Supp_Index); - - if Supp.Index = Language then - return Supp.Present; - end if; - - Supp_Index := Supp.Next; - end loop; - - return False; - end; - end case; - end Is_Present; - - --------------------------------- - -- Language_Processing_Data_Of -- - --------------------------------- - - function Language_Processing_Data_Of - (Language : Language_Index; - In_Project : Project_Data; - In_Tree : Project_Tree_Ref) return Language_Processing_Data - is - begin - case Language is - when No_Language_Index => - return Default_Language_Processing_Data; - - when First_Language_Indexes => - return In_Project.First_Lang_Processing (Language); - - when others => - declare - Supp : Supp_Language_Data; - Supp_Index : Supp_Language_Index; - - begin - Supp_Index := In_Project.Supp_Language_Processing; - while Supp_Index /= No_Supp_Language_Index loop - Supp := In_Tree.Supp_Languages.Table (Supp_Index); - - if Supp.Index = Language then - return Supp.Data; - end if; - - Supp_Index := Supp.Next; - end loop; - - return Default_Language_Processing_Data; - end; - end case; - end Language_Processing_Data_Of; - ----------------------- -- Objects_Exist_For -- ----------------------- @@ -980,13 +844,6 @@ package body Prj is begin Prj.Env.Initialize; - -- gprmake tables - - Present_Language_Table.Init (Tree.Present_Languages); - Supp_Suffix_Table.Init (Tree.Supp_Suffixes); - Supp_Language_Table.Init (Tree.Supp_Languages); - Other_Source_Table.Init (Tree.Other_Sources); - -- Visible tables Language_Data_Table.Init (Tree.Languages_Data); @@ -1040,144 +897,6 @@ package body Prj is and then Left.Separate_Suffix = Right.Separate_Suffix; end Same_Naming_Scheme; - --------- - -- Set -- - --------- - - procedure Set - (Language : Language_Index; - Present : Boolean; - In_Project : in out Project_Data; - In_Tree : Project_Tree_Ref) - is - begin - case Language is - when No_Language_Index => - null; - - when First_Language_Indexes => - In_Project.Langs (Language) := Present; - - when others => - declare - Supp : Supp_Language; - Supp_Index : Supp_Language_Index; - - begin - Supp_Index := In_Project.Supp_Languages; - while Supp_Index /= No_Supp_Language_Index loop - Supp := In_Tree.Present_Languages.Table (Supp_Index); - - if Supp.Index = Language then - In_Tree.Present_Languages.Table (Supp_Index).Present := - Present; - return; - end if; - - Supp_Index := Supp.Next; - end loop; - - Supp := (Index => Language, Present => Present, - Next => In_Project.Supp_Languages); - Present_Language_Table.Increment_Last - (In_Tree.Present_Languages); - Supp_Index := - Present_Language_Table.Last (In_Tree.Present_Languages); - In_Tree.Present_Languages.Table (Supp_Index) := - Supp; - In_Project.Supp_Languages := Supp_Index; - end; - end case; - end Set; - - procedure Set - (Language_Processing : Language_Processing_Data; - For_Language : Language_Index; - In_Project : in out Project_Data; - In_Tree : Project_Tree_Ref) - is - begin - case For_Language is - when No_Language_Index => - null; - - when First_Language_Indexes => - In_Project.First_Lang_Processing (For_Language) := - Language_Processing; - - when others => - declare - Supp : Supp_Language_Data; - Supp_Index : Supp_Language_Index; - - begin - Supp_Index := In_Project.Supp_Language_Processing; - while Supp_Index /= No_Supp_Language_Index loop - Supp := In_Tree.Supp_Languages.Table (Supp_Index); - - if Supp.Index = For_Language then - In_Tree.Supp_Languages.Table - (Supp_Index).Data := Language_Processing; - return; - end if; - - Supp_Index := Supp.Next; - end loop; - - Supp := (Index => For_Language, Data => Language_Processing, - Next => In_Project.Supp_Language_Processing); - Supp_Language_Table.Increment_Last - (In_Tree.Supp_Languages); - Supp_Index := Supp_Language_Table.Last - (In_Tree.Supp_Languages); - In_Tree.Supp_Languages.Table (Supp_Index) := Supp; - In_Project.Supp_Language_Processing := Supp_Index; - end; - end case; - end Set; - - procedure Set - (Suffix : File_Name_Type; - For_Language : Language_Index; - In_Project : in out Project_Data; - In_Tree : Project_Tree_Ref) - is - begin - case For_Language is - when No_Language_Index => - null; - - when First_Language_Indexes => - In_Project.Naming.Impl_Suffixes (For_Language) := Suffix; - - when others => - declare - Supp : Supp_Suffix; - Supp_Index : Supp_Language_Index; - - begin - Supp_Index := In_Project.Naming.Supp_Suffixes; - while Supp_Index /= No_Supp_Language_Index loop - Supp := In_Tree.Supp_Suffixes.Table (Supp_Index); - - if Supp.Index = For_Language then - In_Tree.Supp_Suffixes.Table (Supp_Index).Suffix := Suffix; - return; - end if; - - Supp_Index := Supp.Next; - end loop; - - Supp := (Index => For_Language, Suffix => Suffix, - Next => In_Project.Naming.Supp_Suffixes); - Supp_Suffix_Table.Increment_Last (In_Tree.Supp_Suffixes); - Supp_Index := Supp_Suffix_Table.Last (In_Tree.Supp_Suffixes); - In_Tree.Supp_Suffixes.Table (Supp_Index) := Supp; - In_Project.Naming.Supp_Suffixes := Supp_Index; - end; - end case; - end Set; - --------------------- -- Set_Body_Suffix -- --------------------- @@ -1426,45 +1145,6 @@ package body Prj is end if; end Standard_Naming_Data; - --------------- - -- Suffix_Of -- - --------------- - - function Suffix_Of - (Language : Language_Index; - In_Project : Project_Data; - In_Tree : Project_Tree_Ref) return File_Name_Type - is - begin - case Language is - when No_Language_Index => - return No_File; - - when First_Language_Indexes => - return In_Project.Naming.Impl_Suffixes (Language); - - when others => - declare - Supp : Supp_Suffix; - Supp_Index : Supp_Language_Index; - - begin - Supp_Index := In_Project.Naming.Supp_Suffixes; - while Supp_Index /= No_Supp_Language_Index loop - Supp := In_Tree.Supp_Suffixes.Table (Supp_Index); - - if Supp.Index = Language then - return Supp.Suffix; - end if; - - Supp_Index := Supp.Next; - end loop; - - return No_File; - end; - end case; - end Suffix_Of; - ------------------- -- Switches_Name -- ------------------- diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads index 5d8caa7..6f913c8 100644 --- a/gcc/ada/prj.ads +++ b/gcc/ada/prj.ads @@ -32,15 +32,12 @@ with Casing; use Casing; with Namet; use Namet; with Scans; use Scans; -with Table; with Types; use Types; with GNAT.Dynamic_HTables; use GNAT.Dynamic_HTables; with GNAT.Dynamic_Tables; with GNAT.OS_Lib; use GNAT.OS_Lib; -with System.HTable; - package Prj is Subdirs_Option : constant String := "--subdirs="; @@ -838,164 +835,6 @@ package Prj is -- Similar to 'Value (but avoid use of this attribute in compiler) -- Raises Constraint_Error if not a Casing_Type image. - -- Declarations for gprmake: - - First_Language_Index : constant Language_Index := 1; - First_Language_Indexes_Last : constant Language_Index := 5; - - Ada_Language_Index : constant Language_Index := - First_Language_Index; - C_Language_Index : constant Language_Index := - Ada_Language_Index + 1; - C_Plus_Plus_Language_Index : constant Language_Index := - C_Language_Index + 1; - - Last_Language_Index : Language_Index := No_Language_Index; - - subtype First_Language_Indexes is Language_Index - range First_Language_Index .. First_Language_Indexes_Last; - - package Language_Indexes is new System.HTable.Simple_HTable - (Header_Num => Header_Num, - Element => Language_Index, - No_Element => No_Language_Index, - Key => Name_Id, - Hash => Hash, - Equal => "="); - -- Mapping of language names to language indexes - - package Language_Names is new Table.Table - (Table_Component_Type => Name_Id, - Table_Index_Type => Language_Index, - Table_Low_Bound => 1, - Table_Initial => 4, - Table_Increment => 100, - Table_Name => "Prj.Language_Names"); - -- The table for the name of programming languages - - procedure Add_Language_Name (Name : Name_Id); - - procedure Display_Language_Name (Language : Language_Index); - - type Languages_In_Project is array (First_Language_Indexes) of Boolean; - -- Set of supported languages used in a project - - No_Languages : constant Languages_In_Project := (others => False); - -- No supported languages are used - - type Supp_Language_Index is new Nat; - No_Supp_Language_Index : constant Supp_Language_Index := 0; - - type Supp_Language is record - Index : Language_Index := No_Language_Index; - Present : Boolean := False; - Next : Supp_Language_Index := No_Supp_Language_Index; - end record; - - package Present_Language_Table is new GNAT.Dynamic_Tables - (Table_Component_Type => Supp_Language, - Table_Index_Type => Supp_Language_Index, - Table_Low_Bound => 1, - Table_Initial => 4, - Table_Increment => 100); - -- The table for the presence of languages with an index that is outside - -- of First_Language_Indexes. - - type Impl_Suffix_Array is array (First_Language_Indexes) of File_Name_Type; - -- Suffixes for the non spec sources of the different supported languages - -- in a project. - - No_Impl_Suffixes : constant Impl_Suffix_Array := (others => No_File); - -- A default value for the non spec source suffixes - - type Supp_Suffix is record - Index : Language_Index := No_Language_Index; - Suffix : File_Name_Type := No_File; - Next : Supp_Language_Index := No_Supp_Language_Index; - end record; - - package Supp_Suffix_Table is new GNAT.Dynamic_Tables - (Table_Component_Type => Supp_Suffix, - Table_Index_Type => Supp_Language_Index, - Table_Low_Bound => 1, - Table_Initial => 4, - Table_Increment => 100); - -- The table for the presence of languages with an index that is outside - -- of First_Language_Indexes. - - type Lang_Kind is (GNU, Other); - - type Language_Processing_Data is record - Compiler_Drivers : Name_List_Index := No_Name_List; - Compiler_Paths : Name_Id := No_Name; - Compiler_Kinds : Lang_Kind := GNU; - Dependency_Options : Name_List_Index := No_Name_List; - Compute_Dependencies : Name_List_Index := No_Name_List; - Include_Options : Name_List_Index := No_Name_List; - Binder_Drivers : Name_Id := No_Name; - Binder_Driver_Paths : Name_Id := No_Name; - end record; - - Default_Language_Processing_Data : - constant Language_Processing_Data := - (Compiler_Drivers => No_Name_List, - Compiler_Paths => No_Name, - Compiler_Kinds => GNU, - Dependency_Options => No_Name_List, - Compute_Dependencies => No_Name_List, - Include_Options => No_Name_List, - Binder_Drivers => No_Name, - Binder_Driver_Paths => No_Name); - - type First_Language_Processing_Data is - array (First_Language_Indexes) of Language_Processing_Data; - - Default_First_Language_Processing_Data : - constant First_Language_Processing_Data := - (others => Default_Language_Processing_Data); - - type Supp_Language_Data is record - Index : Language_Index := No_Language_Index; - Data : Language_Processing_Data := Default_Language_Processing_Data; - Next : Supp_Language_Index := No_Supp_Language_Index; - end record; - - package Supp_Language_Table is new GNAT.Dynamic_Tables - (Table_Component_Type => Supp_Language_Data, - Table_Index_Type => Supp_Language_Index, - Table_Low_Bound => 1, - Table_Initial => 4, - Table_Increment => 100); - -- The table for language data when there are more languages than - -- in First_Language_Indexes. - - type Other_Source_Id is new Nat; - No_Other_Source : constant Other_Source_Id := 0; - - type Other_Source is record - Language : Language_Index; -- language of the source - File_Name : File_Name_Type; -- source file simple name - Path_Name : Path_Name_Type; -- source full path name - Source_TS : Time_Stamp_Type; -- source file time stamp - Object_Name : File_Name_Type; -- object file simple name - Object_Path : Path_Name_Type; -- object full path name - Object_TS : Time_Stamp_Type; -- object file time stamp - Dep_Name : File_Name_Type; -- dependency file simple name - Dep_Path : Path_Name_Type; -- dependency full path name - Dep_TS : Time_Stamp_Type; -- dependency file time stamp - Naming_Exception : Boolean := False; -- True if a naming exception - Next : Other_Source_Id := No_Other_Source; - end record; - -- Data for a source in a language other than Ada - - package Other_Source_Table is new GNAT.Dynamic_Tables - (Table_Component_Type => Other_Source, - Table_Index_Type => Other_Source_Id, - Table_Low_Bound => 1, - Table_Initial => 200, - Table_Increment => 100); - -- The table for sources of languages other than Ada - -- The following record contains data for a naming scheme type Naming_Data is record @@ -1044,10 +883,6 @@ package Prj is -- An associative array listing body file names that do not have the -- body suffix. Not used by Ada. Indexed by programming language name. - -- For gprmake: - - Impl_Suffixes : Impl_Suffix_Array := No_Impl_Suffixes; - Supp_Suffixes : Supp_Language_Index := No_Supp_Language_Index; end record; function Spec_Suffix_Of @@ -1407,6 +1242,12 @@ package Prj is -- Sources -- ------------- + Ada_Sources_Present : Boolean := True; + -- True if there are Ada sources in the project + + Other_Sources_Present : Boolean := True; + -- True if there are non-Ada sources in the project + Ada_Sources : String_List_Id := Nil_String; -- The list of all the Ada source file names (gnatmake only) @@ -1515,32 +1356,6 @@ package Prj is -- True if there are comments in the project sources that cannot be kept -- in the project tree. - ------------------ - -- For gprmake -- - ------------------ - - Langs : Languages_In_Project := No_Languages; - Supp_Languages : Supp_Language_Index := No_Supp_Language_Index; - -- Indicate the different languages of the source of this project - - Ada_Sources_Present : Boolean := True; - -- True if there are Ada sources in the project - - Other_Sources_Present : Boolean := True; - -- True if there are sources from languages other than Ada in the - -- project. - - First_Other_Source : Other_Source_Id := No_Other_Source; - -- First source of a language other than Ada - - Last_Other_Source : Other_Source_Id := No_Other_Source; - -- Last source of a language other than Ada - - First_Lang_Processing : First_Language_Processing_Data := - Default_First_Language_Processing_Data; - Supp_Language_Processing : Supp_Language_Index := - No_Supp_Language_Index; - -- Language configurations end record; function Empty_Project (Tree : Project_Tree_Ref) return Project_Data; @@ -1664,13 +1479,6 @@ package Prj is Files_HT : Files_Htable.Instance; Source_Paths_HT : Source_Paths_Htable.Instance; - -- For gprmake: - - Present_Languages : Present_Language_Table.Instance; - Supp_Suffixes : Supp_Suffix_Table.Instance; - Supp_Languages : Supp_Language_Table.Instance; - Other_Sources : Other_Source_Table.Instance; - -- Private part Private_Part : Private_Project_Tree_Data; @@ -1743,59 +1551,6 @@ package Prj is (Source_File_Name : File_Name_Type) return File_Name_Type; -- Returns the switches file name corresponding to a source file name - -- For gprmake - - function Body_Suffix_Of - (Language : Language_Index; - In_Project : Project_Data; - In_Tree : Project_Tree_Ref) return String; - -- Returns the suffix of sources of language Language in project In_Project - -- in project tree In_Tree. - - function Is_Present - (Language : Language_Index; - In_Project : Project_Data; - In_Tree : Project_Tree_Ref) return Boolean; - -- Return True when Language is one of the languages used in - -- project In_Project. - - procedure Set - (Language : Language_Index; - Present : Boolean; - In_Project : in out Project_Data; - In_Tree : Project_Tree_Ref); - -- Indicate if Language is or not a language used in project In_Project - - function Language_Processing_Data_Of - (Language : Language_Index; - In_Project : Project_Data; - In_Tree : Project_Tree_Ref) return Language_Processing_Data; - -- Return the Language_Processing_Data for language Language in project - -- In_Project. Return the default when no Language_Processing_Data are - -- defined for the language. - - procedure Set - (Language_Processing : Language_Processing_Data; - For_Language : Language_Index; - In_Project : in out Project_Data; - In_Tree : Project_Tree_Ref); - -- Set the Language_Processing_Data for language Language in project - -- In_Project. - - function Suffix_Of - (Language : Language_Index; - In_Project : Project_Data; - In_Tree : Project_Tree_Ref) return File_Name_Type; - -- Return the suffix for language Language in project In_Project. Return - -- No_Name when no suffix is defined for the language. - - procedure Set - (Suffix : File_Name_Type; - For_Language : Language_Index; - In_Project : in out Project_Data; - In_Tree : Project_Tree_Ref); - -- Set the suffix for language Language in project In_Project - ---------------- -- Temp Files -- ----------------