aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/makeutl.ads
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-08-29 11:28:10 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-29 11:28:10 +0200
commit94fb7608441bd960315df71ce953d9a88a9f74a3 (patch)
treee80bc0010abd61710289dc0d21c3388988b71aeb /gcc/ada/makeutl.ads
parentc5ecd6b73c89668590555d62b39f954618c27978 (diff)
downloadgcc-94fb7608441bd960315df71ce953d9a88a9f74a3.zip
gcc-94fb7608441bd960315df71ce953d9a88a9f74a3.tar.gz
gcc-94fb7608441bd960315df71ce953d9a88a9f74a3.tar.bz2
[multiple changes]
2011-08-29 Thomas Quinot <quinot@adacore.com> * get_scos.adb: When reading a P statement SCO without a pragma name (from an older ALI file), ensure that the Pragma_Name component is set to Unknown_Pragma (not left uninitialized). 2011-08-29 Vincent Celier <celier@adacore.com> * makeutl.adb (Get_Directories): New procedure moved from Buildgpr and modified to compute correctly the object path of a SAL project that is extending another library project. (Write_Path_File): New procedure. * makeutl.ads (Directories): New table moved from Buildgpr (Get_Directories): New procedure moved from Buildgpr (Write_Path_File): New procedure * mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set the paths before binding SALs, instead of Set_Ada_Paths. * prj-env.adb (Set_Path_File_Var): Procedure has been moved to package Prj. * prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env (Current_Source_Path_File_Of): New function (Set_Current_Object_Path_File_Of): New procedure (Current_Source_Object_File_Of): New function (Set_Current_Object_Path_File_Of): New procedure * prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env (Current_Source_Path_File_Of): New function (Set_Current_Object_Path_File_Of): New procedure (Current_Source_Object_File_Of): New function (Set_Current_Object_Path_File_Of): New procedure 2011-08-29 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to a packed entity, use a bit-field assignment only if there is no change of representation. From-SVN: r178177
Diffstat (limited to 'gcc/ada/makeutl.ads')
-rw-r--r--gcc/ada/makeutl.ads36
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/ada/makeutl.ads b/gcc/ada/makeutl.ads
index f3ac998..f7eadac 100644
--- a/gcc/ada/makeutl.ads
+++ b/gcc/ada/makeutl.ads
@@ -33,6 +33,8 @@ with Opt;
with Osint;
with Prj; use Prj;
with Prj.Tree;
+with Snames; use Snames;
+with Table;
with Types; use Types;
with GNAT.OS_Lib; use GNAT.OS_Lib;
@@ -65,6 +67,16 @@ package Makeutl is
Create_Map_File_Switch : constant String := "--create-map-file";
-- Switch to create a map file when an executable is linked
+ package Directories is new Table.Table
+ (Table_Component_Type => Path_Name_Type,
+ Table_Index_Type => Integer,
+ Table_Low_Bound => 1,
+ Table_Initial => 200,
+ Table_Increment => 100,
+ Table_Name => "Makegpr.Directories");
+ -- Table of all the source or object directories, filled up by
+ -- Get_Directories.
+
procedure Add
(Option : String_Access;
To : in out String_List_Access;
@@ -159,6 +171,30 @@ package Makeutl is
-- 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.
+ type Name_Ids is array (Positive range <>) of Name_Id;
+ No_Names : constant Name_Ids := (1 .. 0 => No_Name);
+ -- Name_Ids is used for list of language names in procedure Get_Directories
+ -- below.
+ Ada_Only : constant Name_Ids := (1 => Name_Ada);
+ -- Used to invoke Get_Directories in gnatmake
+
+ type Activity_Type is (Compilation, Executable_Binding, SAL_Binding);
+
+ procedure Get_Directories
+ (Project_Tree : Project_Tree_Ref;
+ For_Project : Project_Id;
+ Activity : Activity_Type;
+ Languages : Name_Ids);
+ -- Put in table Directories the source (when Sources is True) or
+ -- object/library (when Sources is False) directories of project
+ -- For_Project and of all the project it imports directly or indirectly.
+ -- The source directories of imported projects are only included if one
+ -- of the declared languages is in the list Languages.
+
+ procedure Write_Path_File (FD : File_Descriptor);
+ -- Write in the specified open path file the directories in table
+ -- Directories, then closed the path file.
+
procedure Get_Switches
(Source : Source_Id;
Pkg_Name : Name_Id;