OSDN Git Service

2010-10-05 Ed Schonberg <schonberg@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / prj.ads
index cba9c6f..bdd7cce 100644 (file)
@@ -820,6 +820,7 @@ package Prj is
       Equal      => "=");
 
    type Verbosity is (Default, Medium, High);
+   pragma Ordered (Verbosity);
    --  Verbosity when parsing GNAT Project Files
    --    Default is default (very quiet, if no errors).
    --    Medium is more verbose.
@@ -899,9 +900,12 @@ package Prj is
    type Response_File_Format is
      (None,
       GNU,
-      GCC,
       Object_List,
-      Option_List);
+      Option_List,
+      GCC,
+      GCC_GNU,
+      GCC_Object_List,
+      GCC_Option_List);
    --  The format of the different response files
 
    type Project_Configuration is record
@@ -939,7 +943,7 @@ package Prj is
       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;
+      Trailing_Linker_Required_Switches : Name_List_Index := No_Name_List;
       --  The minimum options for the linker driver. Specified in the
       --  configuration.
 
@@ -1038,7 +1042,8 @@ package Prj is
                                Executable_Suffix             => No_Name,
                                Linker                        => No_Path,
                                Map_File_Option               => No_Name,
-                               Minimum_Linker_Options        => No_Name_List,
+                               Trailing_Linker_Required_Switches =>
+                                 No_Name_List,
                                Linker_Executable_Option      => No_Name_List,
                                Linker_Lib_Dir_Option         => No_Name,
                                Linker_Lib_Name_Option        => No_Name,
@@ -1349,6 +1354,12 @@ package Prj is
          Source_Paths_HT   : Source_Paths_Htable.Instance;
          --  Full path to Source_Id
 
+         Source_Info_File_Name   : String_Access := null;
+         --  The name of the source info file, if specified by the builder
+
+         Source_Info_File_Exists : Boolean := False;
+         --  True when a source info file has been successfully read
+
          Private_Part      : Private_Project_Tree_Data;
       end record;
    --  Data for a project tree
@@ -1459,7 +1470,8 @@ package Prj is
       Compiler_Driver_Mandatory  : Boolean       := False;
       Error_On_Unknown_Language  : Boolean       := True;
       Require_Obj_Dirs           : Error_Warning := Error;
-      Allow_Invalid_External     : Error_Warning := Error)
+      Allow_Invalid_External     : Error_Warning := Error;
+      Missing_Source_Files       : Error_Warning := Error)
       return Processing_Flags;
    --  Function used to create Processing_Flags structure
    --
@@ -1492,6 +1504,11 @@ package Prj is
    --  If Allow_Invalid_External is Silent, then no error is reported when an
    --  invalid value is used for an external variable (and it doesn't match its
    --  type). Instead, the first possible value is used.
+   --
+   --  Missing_Source_Files indicates whether it is an error or a warning that
+   --  a source file mentioned in the Source_Files attributes is not actually
+   --  found in the source directories. This also impacts errors for missing
+   --  source directories.
 
    Gprbuild_Flags : constant Processing_Flags;
    Gprclean_Flags : constant Processing_Flags;
@@ -1521,6 +1538,10 @@ package Prj is
    --  another program running on the same machine has recreated it.
    --  Does nothing if Debug.Debug_Flag_N is set
 
+   Virtual_Prefix : constant String := "v$";
+   --  The prefix for virtual extending projects. Because of the '$', which is
+   --  normally forbidden for project names, there cannot be any name clash.
+
 private
 
    All_Packages : constant String_List_Access := null;
@@ -1535,10 +1556,6 @@ private
                            Location => No_Location,
                            Default  => False);
 
-   Virtual_Prefix : constant String := "v$";
-   --  The prefix for virtual extending projects. Because of the '$', which is
-   --  normally forbidden for project names, there cannot be any name clash.
-
    type Source_Iterator is record
       In_Tree : Project_Tree_Ref;
 
@@ -1601,6 +1618,7 @@ private
       Error_On_Unknown_Language  : Boolean;
       Require_Obj_Dirs           : Error_Warning;
       Allow_Invalid_External     : Error_Warning;
+      Missing_Source_Files       : Error_Warning;
    end record;
 
    Gprbuild_Flags : constant Processing_Flags :=
@@ -1611,7 +1629,8 @@ private
       Compiler_Driver_Mandatory  => True,
       Error_On_Unknown_Language  => True,
       Require_Obj_Dirs           => Error,
-      Allow_Invalid_External     => Error);
+      Allow_Invalid_External     => Error,
+      Missing_Source_Files       => Error);
 
    Gprclean_Flags : constant Processing_Flags :=
      (Report_Error               => null,
@@ -1621,7 +1640,8 @@ private
       Compiler_Driver_Mandatory  => True,
       Error_On_Unknown_Language  => True,
       Require_Obj_Dirs           => Warning,
-      Allow_Invalid_External     => Error);
+      Allow_Invalid_External     => Error,
+      Missing_Source_Files       => Error);
 
    Gnatmake_Flags : constant Processing_Flags :=
      (Report_Error               => null,
@@ -1631,6 +1651,7 @@ private
       Compiler_Driver_Mandatory  => False,
       Error_On_Unknown_Language  => False,
       Require_Obj_Dirs           => Error,
-      Allow_Invalid_External     => Error);
+      Allow_Invalid_External     => Error,
+      Missing_Source_Files       => Error);
 
 end Prj;