mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-10 18:20:51 +08:00
makeutl.adb, [...]: Minor reformatting.
2009-11-30 Robert Dewar <dewar@adacore.com> * makeutl.adb, makeutl.ads, prj-proc.adb, prj.adb, prj.ads: Minor reformatting. From-SVN: r154783
This commit is contained in:
parent
c9df623a12
commit
c8c4161707
@ -1,3 +1,8 @@
|
||||
2009-11-30 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* makeutl.adb, makeutl.ads, prj-proc.adb, prj.adb, prj.ads: Minor
|
||||
reformatting.
|
||||
|
||||
2009-11-30 Thomas Quinot <quinot@adacore.com>
|
||||
|
||||
* osint.adb: Minor reformatting
|
||||
|
@ -167,12 +167,13 @@ package body Makeutl is
|
||||
Index_Separator : Character) return File_Name_Type
|
||||
is
|
||||
Result : File_Name_Type;
|
||||
|
||||
begin
|
||||
Name_Len := 0;
|
||||
Add_Str_To_Name_Buffer (Base_Name (Main));
|
||||
|
||||
-- Remove the extension, if any, that is the last part of the base
|
||||
-- name starting with a dot and following some characters.
|
||||
-- Remove the extension, if any, that is the last part of the base name
|
||||
-- starting with a dot and following some characters.
|
||||
|
||||
for J in reverse 2 .. Name_Len loop
|
||||
if Name_Buffer (J) = '.' then
|
||||
@ -192,6 +193,7 @@ package body Makeutl is
|
||||
Add_Str_To_Name_Buffer (Img (2 .. Img'Last));
|
||||
end;
|
||||
end if;
|
||||
|
||||
Result := Name_Find;
|
||||
return Result;
|
||||
end Base_Name_Index_For;
|
||||
|
@ -66,8 +66,8 @@ package Makeutl is
|
||||
(Main : String;
|
||||
Main_Index : Int;
|
||||
Index_Separator : Character) return File_Name_Type;
|
||||
-- Returns the base name of Main, without the extension, plus the
|
||||
-- Index_Separator followed by the Main_Index, if Main_Index is not 0.
|
||||
-- Returns the base name of Main, without the extension, followed by the
|
||||
-- Index_Separator followed by the Main_Index if it is non-zero.
|
||||
|
||||
function Executable_Prefix_Path return String;
|
||||
-- Return the absolute path parent directory of the directory where the
|
||||
@ -87,9 +87,9 @@ package Makeutl is
|
||||
-- one of its source. Returns False otherwise.
|
||||
|
||||
function Check_Source_Info_In_ALI (The_ALI : ALI.ALI_Id) return Boolean;
|
||||
-- Check whether all file references in ALI are still valid (ie the
|
||||
-- Check whether all file references in ALI are still valid (i.e. the
|
||||
-- source files are still associated with the same units). Return True
|
||||
-- if everything is still valid
|
||||
-- if everything is still valid.
|
||||
|
||||
function Is_External_Assignment
|
||||
(Tree : Prj.Tree.Project_Node_Tree_Ref;
|
||||
@ -121,11 +121,11 @@ package Makeutl is
|
||||
S2 : String := "";
|
||||
Prefix : String := " -> ";
|
||||
Minimum_Verbosity : Opt.Verbosity_Level_Type := Opt.Low);
|
||||
-- If the verbose flag (Verbose_Mode) is set and the verbosity level is
|
||||
-- at least equal to Minimum_Verbosity, then print Prefix to standard
|
||||
-- output followed by N1 and S1. If N2 /= No_Name then N2 is printed after
|
||||
-- S1. S2 is printed last. Both N1 and N2 are printed in quotation marks.
|
||||
-- The two forms differ only in taking Name_Id or File_name_Type arguments.
|
||||
-- If the verbose flag (Verbose_Mode) is set and the verbosity level is at
|
||||
-- least equal to Minimum_Verbosity, then print Prefix to standard output
|
||||
-- followed by N1 and S1. If N2 /= No_Name then N2 is printed after S1. S2
|
||||
-- is printed last. Both N1 and N2 are printed in quotation marks. The two
|
||||
-- forms differ only in taking Name_Id or File_name_Type arguments.
|
||||
|
||||
function Linker_Options_Switches
|
||||
(Project : Project_Id;
|
||||
@ -142,10 +142,30 @@ package Makeutl is
|
||||
-- Find the index of a unit in a source file. Return zero if the file is
|
||||
-- not a multi-unit source file.
|
||||
|
||||
package Mains is
|
||||
procedure Test_If_Relative_Path
|
||||
(Switch : in out String_Access;
|
||||
Parent : String;
|
||||
Including_L_Switch : Boolean := True;
|
||||
Including_Non_Switch : Boolean := True;
|
||||
Including_RTS : Boolean := False);
|
||||
-- Test if Switch is a relative search path switch. If it is, fail if
|
||||
-- Parent is the empty string, otherwise prepend the path with Parent.
|
||||
-- This subprogram is only called when using project files. For gnatbind
|
||||
-- switches, Including_L_Switch is False, because the argument of the -L
|
||||
-- switch is not a path. If Including_RTS is True, process also switches
|
||||
-- --RTS=.
|
||||
|
||||
-- Mains are stored in a table. An index is used to retrieve the mains
|
||||
-- from the table.
|
||||
function Path_Or_File_Name (Path : Path_Name_Type) return String;
|
||||
-- Returns a file name if -df is used, otherwise return a path name
|
||||
|
||||
-----------
|
||||
-- Mains --
|
||||
-----------
|
||||
|
||||
-- Mains are stored in a table. An index is used to retrieve the mains
|
||||
-- from the table.
|
||||
|
||||
package Mains is
|
||||
|
||||
procedure Add_Main (Name : String);
|
||||
-- Add one main to the table
|
||||
@ -180,22 +200,6 @@ package Makeutl is
|
||||
|
||||
end Mains;
|
||||
|
||||
procedure Test_If_Relative_Path
|
||||
(Switch : in out String_Access;
|
||||
Parent : String;
|
||||
Including_L_Switch : Boolean := True;
|
||||
Including_Non_Switch : Boolean := True;
|
||||
Including_RTS : Boolean := False);
|
||||
-- Test if Switch is a relative search path switch. If it is, fail if
|
||||
-- Parent is the empty string, otherwise prepend the path with Parent.
|
||||
-- This subprogram is only called when using project files. For gnatbind
|
||||
-- switches, Including_L_Switch is False, because the argument of the -L
|
||||
-- switch is not a path. If Including_RTS is True, process also switches
|
||||
-- --RTS=.
|
||||
|
||||
function Path_Or_File_Name (Path : Path_Name_Type) return String;
|
||||
-- Returns a file name if -df is used, otherwise return a path name
|
||||
|
||||
----------------------
|
||||
-- Marking Routines --
|
||||
----------------------
|
||||
|
@ -1869,12 +1869,16 @@ package body Prj.Proc is
|
||||
else
|
||||
declare
|
||||
Index_Name : Name_Id :=
|
||||
Associative_Array_Index_Of
|
||||
(Current_Item, From_Project_Node_Tree);
|
||||
Associative_Array_Index_Of
|
||||
(Current_Item,
|
||||
From_Project_Node_Tree);
|
||||
|
||||
Source_Index : constant Int :=
|
||||
Source_Index_Of
|
||||
(Current_Item, From_Project_Node_Tree);
|
||||
The_Array : Array_Id;
|
||||
Source_Index_Of
|
||||
(Current_Item,
|
||||
From_Project_Node_Tree);
|
||||
|
||||
The_Array : Array_Id;
|
||||
The_Array_Element : Array_Element_Id :=
|
||||
No_Array_Element;
|
||||
|
||||
@ -1892,9 +1896,9 @@ package body Prj.Proc is
|
||||
if Pkg /= No_Package then
|
||||
The_Array :=
|
||||
In_Tree.Packages.Table (Pkg).Decl.Arrays;
|
||||
|
||||
else
|
||||
The_Array := Project.Decl.Arrays;
|
||||
The_Array :=
|
||||
Project.Decl.Arrays;
|
||||
end if;
|
||||
|
||||
while
|
||||
@ -1903,8 +1907,8 @@ package body Prj.Proc is
|
||||
In_Tree.Arrays.Table (The_Array).Name /=
|
||||
Current_Item_Name
|
||||
loop
|
||||
The_Array := In_Tree.Arrays.Table
|
||||
(The_Array).Next;
|
||||
The_Array :=
|
||||
In_Tree.Arrays.Table (The_Array).Next;
|
||||
end loop;
|
||||
|
||||
-- If the array cannot be found, create a new entry
|
||||
@ -1952,7 +1956,7 @@ package body Prj.Proc is
|
||||
and then
|
||||
(In_Tree.Array_Elements.Table
|
||||
(The_Array_Element).Index /= Index_Name
|
||||
or else
|
||||
or else
|
||||
In_Tree.Array_Elements.Table
|
||||
(The_Array_Element).Src_Index /= Source_Index)
|
||||
loop
|
||||
@ -1968,21 +1972,23 @@ package body Prj.Proc is
|
||||
if The_Array_Element = No_Array_Element then
|
||||
Array_Element_Table.Increment_Last
|
||||
(In_Tree.Array_Elements);
|
||||
The_Array_Element := Array_Element_Table.Last
|
||||
(In_Tree.Array_Elements);
|
||||
The_Array_Element :=
|
||||
Array_Element_Table.Last
|
||||
(In_Tree.Array_Elements);
|
||||
|
||||
In_Tree.Array_Elements.Table
|
||||
(The_Array_Element) :=
|
||||
(Index => Index_Name,
|
||||
Src_Index => Source_Index,
|
||||
(Index => Index_Name,
|
||||
Src_Index => Source_Index,
|
||||
Index_Case_Sensitive =>
|
||||
not Case_Insensitive
|
||||
(Current_Item, From_Project_Node_Tree),
|
||||
Value => New_Value,
|
||||
Next => In_Tree.Arrays.Table
|
||||
(The_Array).Value);
|
||||
In_Tree.Arrays.Table
|
||||
(The_Array).Value := The_Array_Element;
|
||||
Value => New_Value,
|
||||
Next =>
|
||||
In_Tree.Arrays.Table (The_Array).Value);
|
||||
|
||||
In_Tree.Arrays.Table (The_Array).Value :=
|
||||
The_Array_Element;
|
||||
|
||||
-- An element with the same index already exists,
|
||||
-- just replace its value with the new one.
|
||||
|
@ -687,10 +687,11 @@ package body Prj is
|
||||
is
|
||||
Index_Img : constant String := Source_Index'Img;
|
||||
Last : Natural;
|
||||
|
||||
begin
|
||||
Get_Name_String (Source_File_Name);
|
||||
Last := Name_Len;
|
||||
|
||||
Last := Name_Len;
|
||||
while Last > 1 and then Name_Buffer (Last) /= '.' loop
|
||||
Last := Last - 1;
|
||||
end loop;
|
||||
@ -704,7 +705,6 @@ package body Prj is
|
||||
|
||||
if Object_File_Suffix = No_Name then
|
||||
Add_Str_To_Name_Buffer (Object_Suffix);
|
||||
|
||||
else
|
||||
Add_Str_To_Name_Buffer (Get_Name_String (Object_File_Suffix));
|
||||
end if;
|
||||
|
201
gcc/ada/prj.ads
201
gcc/ada/prj.ads
@ -346,6 +346,8 @@ package Prj is
|
||||
Equal => "=");
|
||||
-- A hash table to store the mapping files that are not used
|
||||
|
||||
-- The following record ???
|
||||
|
||||
type Lang_Naming_Data is record
|
||||
Dot_Replacement : File_Name_Type := No_File;
|
||||
-- The string to replace '.' in the source file name (for Ada)
|
||||
@ -401,10 +403,11 @@ package Prj is
|
||||
type Path_Syntax_Kind is
|
||||
(Canonical,
|
||||
-- Unix style
|
||||
|
||||
Host);
|
||||
-- Host specific syntax, for example on VMS (the default)
|
||||
|
||||
-- The following record describes the configuration of a language
|
||||
|
||||
type Language_Config is record
|
||||
Kind : Language_Kind := File_Based;
|
||||
-- Kind of language. All languages are file based, except Ada which is
|
||||
@ -414,10 +417,10 @@ package Prj is
|
||||
-- The naming data for the languages (prefixes, etc.)
|
||||
|
||||
Include_Compatible_Languages : Name_List_Index := No_Name_List;
|
||||
-- The list of languages that are "include compatible" with this
|
||||
-- language. A language B (for example "C") is "include compatible" with
|
||||
-- a language A (for example "C++") if it is expected that sources of
|
||||
-- language A may "include" header files from language B.
|
||||
-- List of languages that are "include compatible" with this language. A
|
||||
-- language B (for example "C") is "include compatible" with a language
|
||||
-- A (for example "C++") if it is expected that sources of language A
|
||||
-- may "include" header files from language B.
|
||||
|
||||
Compiler_Driver : File_Name_Type := No_File;
|
||||
-- The name of the executable for the compiler of the language
|
||||
@ -433,22 +436,21 @@ package Prj is
|
||||
-- The list of final switches that are required as a minimum to invoke
|
||||
-- the compiler driver.
|
||||
|
||||
Multi_Unit_Switches : Name_List_Index := No_Name_List;
|
||||
-- The switch(es) to indicate the index of a unit in a multi-source
|
||||
-- file.
|
||||
Multi_Unit_Switches : Name_List_Index := No_Name_List;
|
||||
-- The switch(es) to indicate the index of a unit in a multi-source file
|
||||
|
||||
Multi_Unit_Object_Separator : Character := ' ';
|
||||
-- The string separating the base name of a source from the index of
|
||||
-- the unit in a multi-source file, in the object file name.
|
||||
Multi_Unit_Object_Separator : Character := ' ';
|
||||
-- The string separating the base name of a source from the index of the
|
||||
-- unit in a multi-source file, in the object file name.
|
||||
|
||||
Path_Syntax : Path_Syntax_Kind := Host;
|
||||
Path_Syntax : Path_Syntax_Kind := Host;
|
||||
-- Value may be Canonical (Unix style) or Host (host syntax, for example
|
||||
-- on VMS for DEC C).
|
||||
|
||||
Object_File_Suffix : Name_Id := No_Name;
|
||||
Object_File_Suffix : Name_Id := No_Name;
|
||||
-- Optional alternate object file suffix
|
||||
|
||||
Object_File_Switches : Name_List_Index := No_Name_List;
|
||||
Object_File_Switches : Name_List_Index := No_Name_List;
|
||||
-- Optional object file switches. When this is defined, the switches
|
||||
-- are used to specify the object file. The object file name is appended
|
||||
-- to the last switch in the list. Example: ("-o", "").
|
||||
@ -458,48 +460,47 @@ package Prj is
|
||||
-- shared libraries. Specified in the configuration. When not specified,
|
||||
-- there is no need for such switch.
|
||||
|
||||
Object_Generated : Boolean := True;
|
||||
Object_Generated : Boolean := True;
|
||||
-- False in no object file is generated
|
||||
|
||||
Objects_Linked : Boolean := True;
|
||||
Objects_Linked : Boolean := True;
|
||||
-- False if object files are not use to link executables and build
|
||||
-- libraries.
|
||||
|
||||
Runtime_Library_Dir : Name_Id := No_Name;
|
||||
Runtime_Library_Dir : Name_Id := No_Name;
|
||||
-- Path name of the runtime library directory, if any
|
||||
|
||||
Runtime_Source_Dir : Name_Id := No_Name;
|
||||
Runtime_Source_Dir : Name_Id := No_Name;
|
||||
-- Path name of the runtime source directory, if any
|
||||
|
||||
Mapping_File_Switches : Name_List_Index := No_Name_List;
|
||||
Mapping_File_Switches : Name_List_Index := No_Name_List;
|
||||
-- The option(s) to provide a mapping file to the compiler. Specified in
|
||||
-- the configuration. When value is No_Name_List, there is no mapping
|
||||
-- file.
|
||||
|
||||
Mapping_Spec_Suffix : File_Name_Type := No_File;
|
||||
Mapping_Spec_Suffix : File_Name_Type := No_File;
|
||||
-- Placeholder representing the spec suffix in a mapping file
|
||||
|
||||
Mapping_Body_Suffix : File_Name_Type := No_File;
|
||||
Mapping_Body_Suffix : File_Name_Type := No_File;
|
||||
-- Placeholder representing the body suffix in a mapping file
|
||||
|
||||
Config_File_Switches : Name_List_Index := No_Name_List;
|
||||
Config_File_Switches : Name_List_Index := No_Name_List;
|
||||
-- The option(s) to provide a config file to the compiler. Specified in
|
||||
-- the configuration. When value is No_Name_List, there is no config
|
||||
-- file.
|
||||
-- the configuration. If value is No_Name_List there is no config file.
|
||||
|
||||
Dependency_Kind : Dependency_File_Kind := None;
|
||||
Dependency_Kind : Dependency_File_Kind := None;
|
||||
-- The kind of dependency to be checked: none, Makefile fragment or
|
||||
-- ALI file (for Ada).
|
||||
|
||||
Dependency_Option : Name_List_Index := No_Name_List;
|
||||
Dependency_Option : Name_List_Index := No_Name_List;
|
||||
-- The option(s) to be used to create the dependency file. When value is
|
||||
-- No_Name_List, there is not such option(s).
|
||||
|
||||
Compute_Dependency : Name_List_Index := No_Name_List;
|
||||
Compute_Dependency : Name_List_Index := No_Name_List;
|
||||
-- Hold the value of attribute Dependency_Driver, if declared for the
|
||||
-- language.
|
||||
|
||||
Include_Option : Name_List_Index := No_Name_List;
|
||||
Include_Option : Name_List_Index := No_Name_List;
|
||||
-- Hold the value of attribute Include_Switches, if declared for the
|
||||
-- language.
|
||||
|
||||
@ -519,55 +520,54 @@ package Prj is
|
||||
-- Name of environment variable declared by attribute Objects_Path_File
|
||||
-- for the language.
|
||||
|
||||
Config_Body : Name_Id := No_Name;
|
||||
Config_Body : Name_Id := No_Name;
|
||||
-- The template for a pragma Source_File_Name(_Project) for a specific
|
||||
-- file name of a body.
|
||||
|
||||
Config_Body_Index : Name_Id := No_Name;
|
||||
Config_Body_Index : Name_Id := No_Name;
|
||||
-- The template for a pragma Source_File_Name(_Project) for a specific
|
||||
-- file name of a body in a multi-source file.
|
||||
|
||||
Config_Body_Pattern : Name_Id := No_Name;
|
||||
Config_Body_Pattern : Name_Id := No_Name;
|
||||
-- The template for a pragma Source_File_Name(_Project) for a naming
|
||||
-- body pattern.
|
||||
|
||||
Config_Spec : Name_Id := No_Name;
|
||||
Config_Spec : Name_Id := No_Name;
|
||||
-- The template for a pragma Source_File_Name(_Project) for a specific
|
||||
-- file name of a spec.
|
||||
|
||||
Config_Spec_Index : Name_Id := No_Name;
|
||||
Config_Spec_Index : Name_Id := No_Name;
|
||||
-- The template for a pragma Source_File_Name(_Project) for a specific
|
||||
-- file name of a spec in a multi-source file.
|
||||
|
||||
Config_Spec_Pattern : Name_Id := No_Name;
|
||||
Config_Spec_Pattern : Name_Id := No_Name;
|
||||
-- The template for a pragma Source_File_Name(_Project) for a naming
|
||||
-- spec pattern.
|
||||
|
||||
Config_File_Unique : Boolean := False;
|
||||
Config_File_Unique : Boolean := False;
|
||||
-- Indicate if the config file specified to the compiler needs to be
|
||||
-- unique. If it is unique, then all config files are concatenated into
|
||||
-- a temp config file.
|
||||
|
||||
Binder_Driver : File_Name_Type := No_File;
|
||||
Binder_Driver : File_Name_Type := No_File;
|
||||
-- The name of the binder driver for the language, if any
|
||||
|
||||
Binder_Driver_Path : Path_Name_Type := No_Path;
|
||||
Binder_Driver_Path : Path_Name_Type := No_Path;
|
||||
-- The path name of the binder driver
|
||||
|
||||
Binder_Required_Switches : Name_List_Index := No_Name_List;
|
||||
Binder_Required_Switches : Name_List_Index := No_Name_List;
|
||||
-- Hold the value of attribute Binder'Required_Switches for the language
|
||||
|
||||
Binder_Prefix : Name_Id := No_Name;
|
||||
Binder_Prefix : Name_Id := No_Name;
|
||||
-- Hold the value of attribute Binder'Prefix for the language
|
||||
|
||||
Toolchain_Version : Name_Id := No_Name;
|
||||
Toolchain_Version : Name_Id := No_Name;
|
||||
-- Hold the value of attribute Toolchain_Version for the language
|
||||
|
||||
Toolchain_Description : Name_Id := No_Name;
|
||||
Toolchain_Description : Name_Id := No_Name;
|
||||
-- Hold the value of attribute Toolchain_Description for the language
|
||||
|
||||
end record;
|
||||
-- Record describing the configuration of a language
|
||||
|
||||
No_Language_Config : constant Language_Config :=
|
||||
(Kind => File_Based,
|
||||
@ -613,6 +613,8 @@ package Prj is
|
||||
Toolchain_Version => No_Name,
|
||||
Toolchain_Description => No_Name);
|
||||
|
||||
-- The following record ???
|
||||
|
||||
type Language_Data is record
|
||||
Name : Name_Id := No_Name;
|
||||
Display_Name : Name_Id := No_Name;
|
||||
@ -661,104 +663,105 @@ package Prj is
|
||||
-- Structure to define source data
|
||||
|
||||
type Source_Data is record
|
||||
Project : Project_Id := No_Project;
|
||||
Project : Project_Id := No_Project;
|
||||
-- Project of the source
|
||||
|
||||
Source_Dir_Rank : Natural := 0;
|
||||
Source_Dir_Rank : Natural := 0;
|
||||
-- The rank of the source directory in list declared with attribute
|
||||
-- Source_Dirs. Two source files with the same name cannot appears in
|
||||
-- different directory with the same rank. That can happen when the
|
||||
-- recursive notation <dir>/** is used in attribute Source_Dirs.
|
||||
|
||||
Language : Language_Ptr := No_Language_Index;
|
||||
Language : Language_Ptr := No_Language_Index;
|
||||
-- Index of the language. This is an index into
|
||||
-- Project_Tree.Languages_Data.
|
||||
|
||||
In_Interfaces : Boolean := True;
|
||||
In_Interfaces : Boolean := True;
|
||||
-- False when the source is not included in interfaces, when attribute
|
||||
-- Interfaces is declared.
|
||||
|
||||
Declared_In_Interfaces : Boolean := False;
|
||||
Declared_In_Interfaces : Boolean := False;
|
||||
-- True when source is declared in attribute Interfaces
|
||||
|
||||
Alternate_Languages : Language_List := null;
|
||||
Alternate_Languages : Language_List := null;
|
||||
-- List of languages a header file may also be, in addition of language
|
||||
-- Language_Name.
|
||||
|
||||
Kind : Source_Kind := Spec;
|
||||
Kind : Source_Kind := Spec;
|
||||
-- Kind of the source: spec, body or subunit
|
||||
|
||||
Unit : Unit_Index := No_Unit_Index;
|
||||
Unit : Unit_Index := No_Unit_Index;
|
||||
-- Name of the unit, if language is unit based. This is only set for
|
||||
-- those files that are part of the compilation set (for instance a
|
||||
-- file in an extended project that is overridden will not have this
|
||||
-- field set).
|
||||
|
||||
Index : Int := 0;
|
||||
Index : Int := 0;
|
||||
-- Index of the source in a multi unit source file (the same Source_Data
|
||||
-- is duplicated several times when there are several units in the same
|
||||
-- file). Index is 0 if there is either no unit or a single one, and
|
||||
-- starts at 1 when there are multiple units
|
||||
|
||||
Locally_Removed : Boolean := False;
|
||||
Locally_Removed : Boolean := False;
|
||||
-- True if the source has been "excluded"
|
||||
|
||||
Replaced_By : Source_Id := No_Source;
|
||||
Replaced_By : Source_Id := No_Source;
|
||||
-- Missing comment ???
|
||||
|
||||
File : File_Name_Type := No_File;
|
||||
File : File_Name_Type := No_File;
|
||||
-- Canonical file name of the source
|
||||
|
||||
Display_File : File_Name_Type := No_File;
|
||||
Display_File : File_Name_Type := No_File;
|
||||
-- File name of the source, for display purposes
|
||||
|
||||
Path : Path_Information := No_Path_Information;
|
||||
Path : Path_Information := No_Path_Information;
|
||||
-- Path name of the source
|
||||
|
||||
Source_TS : Time_Stamp_Type := Empty_Time_Stamp;
|
||||
Source_TS : Time_Stamp_Type := Empty_Time_Stamp;
|
||||
-- Time stamp of the source file
|
||||
|
||||
Object_Project : Project_Id := No_Project;
|
||||
Object_Project : Project_Id := No_Project;
|
||||
-- Project where the object file is. This might be different from
|
||||
-- Project when using extending project files.
|
||||
|
||||
Object : File_Name_Type := No_File;
|
||||
Object : File_Name_Type := No_File;
|
||||
-- File name of the object file
|
||||
|
||||
Current_Object_Path : Path_Name_Type := No_Path;
|
||||
Current_Object_Path : Path_Name_Type := No_Path;
|
||||
-- Object path of an existing object file
|
||||
|
||||
Object_Path : Path_Name_Type := No_Path;
|
||||
Object_Path : Path_Name_Type := No_Path;
|
||||
-- Object path of the real object file
|
||||
|
||||
Object_TS : Time_Stamp_Type := Empty_Time_Stamp;
|
||||
Object_TS : Time_Stamp_Type := Empty_Time_Stamp;
|
||||
-- Object file time stamp
|
||||
|
||||
Dep_Name : File_Name_Type := No_File;
|
||||
Dep_Name : File_Name_Type := No_File;
|
||||
-- Dependency file simple name
|
||||
|
||||
Current_Dep_Path : Path_Name_Type := No_Path;
|
||||
Current_Dep_Path : Path_Name_Type := No_Path;
|
||||
-- Path name of an existing dependency file
|
||||
|
||||
Dep_Path : Path_Name_Type := No_Path;
|
||||
Dep_Path : Path_Name_Type := No_Path;
|
||||
-- Path name of the real dependency file
|
||||
|
||||
Dep_TS : Time_Stamp_Type := Empty_Time_Stamp;
|
||||
Dep_TS : Time_Stamp_Type := Empty_Time_Stamp;
|
||||
-- Dependency file time stamp
|
||||
|
||||
Switches : File_Name_Type := No_File;
|
||||
Switches : File_Name_Type := No_File;
|
||||
-- File name of the switches file. For all languages, this is a file
|
||||
-- that ends with the .cswi extension.
|
||||
|
||||
Switches_Path : Path_Name_Type := No_Path;
|
||||
Switches_Path : Path_Name_Type := No_Path;
|
||||
-- Path name of the switches file
|
||||
|
||||
Switches_TS : Time_Stamp_Type := Empty_Time_Stamp;
|
||||
Switches_TS : Time_Stamp_Type := Empty_Time_Stamp;
|
||||
-- Switches file time stamp
|
||||
|
||||
Naming_Exception : Boolean := False;
|
||||
Naming_Exception : Boolean := False;
|
||||
-- True if the source has an exceptional name
|
||||
|
||||
Next_In_Lang : Source_Id := No_Source;
|
||||
Next_In_Lang : Source_Id := No_Source;
|
||||
-- Link to another source of the same language in the same project
|
||||
end record;
|
||||
|
||||
@ -895,117 +898,117 @@ package Prj is
|
||||
-- The format of the different response files
|
||||
|
||||
type Project_Configuration is record
|
||||
Target : Name_Id := No_Name;
|
||||
Target : Name_Id := No_Name;
|
||||
-- The target of the configuration, when specified
|
||||
|
||||
Run_Path_Option : Name_List_Index := No_Name_List;
|
||||
Run_Path_Option : Name_List_Index := No_Name_List;
|
||||
-- The option to use when linking to specify the path where to look for
|
||||
-- libraries.
|
||||
|
||||
Separate_Run_Path_Options : Boolean := False;
|
||||
Separate_Run_Path_Options : Boolean := False;
|
||||
-- True if each directory needs to be specified in a separate run path
|
||||
-- option.
|
||||
|
||||
Executable_Suffix : Name_Id := No_Name;
|
||||
Executable_Suffix : Name_Id := No_Name;
|
||||
-- The suffix of executables, when specified in the configuration or in
|
||||
-- package Builder of the main project. When this is not specified, the
|
||||
-- executable suffix is the default for the platform.
|
||||
|
||||
-- Linking
|
||||
|
||||
Linker : Path_Name_Type := No_Path;
|
||||
Linker : Path_Name_Type := No_Path;
|
||||
-- Path name of the linker driver. Specified in the configuration or in
|
||||
-- the package Builder of the main project.
|
||||
|
||||
Map_File_Option : Name_Id := No_Name;
|
||||
Map_File_Option : Name_Id := No_Name;
|
||||
-- Option to use when invoking the linker to build a map file
|
||||
|
||||
Minimum_Linker_Options : Name_List_Index := No_Name_List;
|
||||
Minimum_Linker_Options : Name_List_Index := No_Name_List;
|
||||
-- The minimum options for the linker driver. Specified in the
|
||||
-- configuration.
|
||||
|
||||
Linker_Executable_Option : Name_List_Index := No_Name_List;
|
||||
Linker_Executable_Option : Name_List_Index := No_Name_List;
|
||||
-- The option(s) to indicate the name of the executable in the linker
|
||||
-- command. Specified in the configuration. When not specified, default
|
||||
-- to -o <executable name>.
|
||||
|
||||
Linker_Lib_Dir_Option : Name_Id := No_Name;
|
||||
Linker_Lib_Dir_Option : Name_Id := No_Name;
|
||||
-- The option to specify where to find a library for linking. Specified
|
||||
-- in the configuration. When not specified, defaults to "-L".
|
||||
|
||||
Linker_Lib_Name_Option : Name_Id := No_Name;
|
||||
Linker_Lib_Name_Option : Name_Id := No_Name;
|
||||
-- The option to specify the name of a library for linking. Specified in
|
||||
-- the configuration. When not specified, defaults to "-l".
|
||||
|
||||
Max_Command_Line_Length : Natural := 0;
|
||||
Max_Command_Line_Length : Natural := 0;
|
||||
-- When positive and when Resp_File_Format (see below) is not None,
|
||||
-- if the command line for the invocation of the linker would be greater
|
||||
-- than this value, a response file is used to invoke the linker.
|
||||
|
||||
Resp_File_Format : Response_File_Format := None;
|
||||
Resp_File_Format : Response_File_Format := None;
|
||||
-- The format of a response file, when linking with a response file is
|
||||
-- supported.
|
||||
|
||||
Resp_File_Options : Name_List_Index := No_Name_List;
|
||||
Resp_File_Options : Name_List_Index := No_Name_List;
|
||||
-- The switches, if any, that precede the path name of the response
|
||||
-- file in the invocation of the linker.
|
||||
|
||||
-- Libraries
|
||||
|
||||
Library_Builder : Path_Name_Type := No_Path;
|
||||
Library_Builder : Path_Name_Type := No_Path;
|
||||
-- The executable to build library (specified in the configuration)
|
||||
|
||||
Lib_Support : Library_Support := None;
|
||||
Lib_Support : Library_Support := None;
|
||||
-- The level of library support. Specified in the configuration. Support
|
||||
-- is none, static libraries only or both static and shared libraries.
|
||||
|
||||
Archive_Builder : Name_List_Index := No_Name_List;
|
||||
Archive_Builder : Name_List_Index := No_Name_List;
|
||||
-- The name of the executable to build archives, with the minimum
|
||||
-- switches. Specified in the configuration.
|
||||
|
||||
Archive_Builder_Append_Option : Name_List_Index := No_Name_List;
|
||||
-- The options to append object files to an archive
|
||||
|
||||
Archive_Indexer : Name_List_Index := No_Name_List;
|
||||
Archive_Indexer : Name_List_Index := No_Name_List;
|
||||
-- The name of the executable to index archives, with the minimum
|
||||
-- switches. Specified in the configuration.
|
||||
|
||||
Archive_Suffix : File_Name_Type := No_File;
|
||||
Archive_Suffix : File_Name_Type := No_File;
|
||||
-- The suffix of archives. Specified in the configuration. When not
|
||||
-- specified, defaults to ".a".
|
||||
|
||||
Lib_Partial_Linker : Name_List_Index := No_Name_List;
|
||||
Lib_Partial_Linker : Name_List_Index := No_Name_List;
|
||||
|
||||
-- Shared libraries
|
||||
|
||||
Shared_Lib_Driver : File_Name_Type := No_File;
|
||||
Shared_Lib_Driver : File_Name_Type := No_File;
|
||||
-- The driver to link shared libraries. Set with attribute Library_GCC.
|
||||
-- Default to gcc.
|
||||
|
||||
Shared_Lib_Prefix : File_Name_Type := No_File;
|
||||
Shared_Lib_Prefix : File_Name_Type := No_File;
|
||||
-- Part of a shared library file name that precedes the name of the
|
||||
-- library. Specified in the configuration. When not specified, defaults
|
||||
-- to "lib".
|
||||
|
||||
Shared_Lib_Suffix : File_Name_Type := No_File;
|
||||
Shared_Lib_Suffix : File_Name_Type := No_File;
|
||||
-- Suffix of shared libraries, after the library name in the shared
|
||||
-- library name. Specified in the configuration. When not specified,
|
||||
-- default to ".so".
|
||||
|
||||
Shared_Lib_Min_Options : Name_List_Index := No_Name_List;
|
||||
Shared_Lib_Min_Options : Name_List_Index := No_Name_List;
|
||||
-- The minimum options to use when building a shared library
|
||||
|
||||
Lib_Version_Options : Name_List_Index := No_Name_List;
|
||||
Lib_Version_Options : Name_List_Index := No_Name_List;
|
||||
-- The options to use to specify a library version
|
||||
|
||||
Symbolic_Link_Supported : Boolean := False;
|
||||
Symbolic_Link_Supported : Boolean := False;
|
||||
-- True if the platform supports symbolic link files
|
||||
|
||||
Lib_Maj_Min_Id_Supported : Boolean := False;
|
||||
Lib_Maj_Min_Id_Supported : Boolean := False;
|
||||
-- True if platform supports library major and minor options, such as
|
||||
-- libname.so -> libname.so.2 -> libname.so.2.4
|
||||
|
||||
Auto_Init_Supported : Boolean := False;
|
||||
Auto_Init_Supported : Boolean := False;
|
||||
-- True if automatic initialisation is supported for shared stand-alone
|
||||
-- libraries.
|
||||
end record;
|
||||
@ -1185,7 +1188,7 @@ package Prj is
|
||||
-- The sources for all languages including Ada are accessible through
|
||||
-- the Source_Iterator type
|
||||
|
||||
Interfaces_Defined : Boolean := False;
|
||||
Interfaces_Defined : Boolean := False;
|
||||
-- True if attribute Interfaces is declared for the project or any
|
||||
-- project it extends.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user