summaryrefslogtreecommitdiff
path: root/gcc/ada/prj.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-03 15:30:38 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-03 15:30:38 +0000
commitbd30f230871f8af9fa285d0274a9246e72df41d9 (patch)
treeb1948d16356c5cde22a3e4a23b2805074f88b61d /gcc/ada/prj.ads
parentd8c1cfef7febf544cfec608b90dc2d3c453f3dfb (diff)
downloadgcc-bd30f230871f8af9fa285d0274a9246e72df41d9.tar.gz
2011-08-03 Emmanuel Briot <briot@adacore.com>
* prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts the "roots" for a main. (Fill_From_Project): add support for aggregate projects. Main units in aggregated projects are now automatically added in the list of files to build (although this fails later on in gprbuild, because these files are not using the root proejct tree, so this needs further cleanup) * gcc-interface/Make-lang.in: Update dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177287 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/prj.ads')
-rw-r--r--gcc/ada/prj.ads17
1 files changed, 16 insertions, 1 deletions
diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads
index c57f37246e4..578faf2659b 100644
--- a/gcc/ada/prj.ads
+++ b/gcc/ada/prj.ads
@@ -660,6 +660,17 @@ package Prj is
No_Unit_Index : constant Unit_Index := null;
-- Used to indicate a null entry for no unit
+ type Source_Roots;
+ type Roots_Access is access Source_Roots;
+ type Source_Roots is record
+ Root : Source_Id;
+ Next : Roots_Access;
+ end record;
+ -- A list to store the roots associated with a main unit. These are the
+ -- files that need to linked along with the main (for instance a C file
+ -- corresponding to an Ada file). In general, these are dependencies that
+ -- cannot be computed automatically by the builder.
+
-- Structure to define source data
type Source_Data is record
@@ -784,6 +795,9 @@ package Prj is
Next_With_File_Name : Source_Id := No_Source;
-- Link to another source with the same base file name
+ Roots : Roots_Access := null;
+ -- The roots for a main unit
+
end record;
No_Source_Data : constant Source_Data :=
@@ -821,7 +835,8 @@ package Prj is
Naming_Exception => False,
Duplicate_Unit => False,
Next_In_Lang => No_Source,
- Next_With_File_Name => No_Source);
+ Next_With_File_Name => No_Source,
+ Roots => null);
package Source_Files_Htable is new Simple_HTable
(Header_Num => Header_Num,