OSDN Git Service

2008-08-01 Vincent Celier <celier@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Aug 2008 09:03:11 +0000 (09:03 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Aug 2008 09:03:11 +0000 (09:03 +0000)
* mlib-utl.adb:
(Adalib_Path): New variable to store the path of the adalib directory
when procedure Specify_Adalib_Dir is called.
(Lib_Directory): If Adalib_Path is not null, return its value
(Specify_Adalib_Dir): New procedure

* mlib-utl.ads (Specify_Adalib_Dir): New procedure

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138488 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/mlib-utl.adb
gcc/ada/mlib-utl.ads

index 4d15ad8..76e7db5 100644 (file)
@@ -35,6 +35,10 @@ with System;
 
 package body MLib.Utl is
 
+   Adalib_Path : String_Access := null;
+   --  Path of the GNAT adalib directory, specified in procedure
+   --  Specify_Adalib_Dir. Used in function Lib_Directory.
+
    Gcc_Name : String_Access;
    --  Default value of the "gcc" executable used in procedure Gcc
 
@@ -597,6 +601,13 @@ package body MLib.Utl is
       Libgnat : constant String := Tgt.Libgnat;
 
    begin
+      --  If procedure Specify_Adalib_Dir has been called, used the specified
+      --  value.
+
+      if Adalib_Path /= null then
+         return Adalib_Path.all;
+      end if;
+
       Name_Len := Libgnat'Length;
       Name_Buffer (1 .. Name_Len) := Libgnat;
       Get_Name_String (Osint.Find_File (Name_Enter, Osint.Library));
@@ -606,4 +617,17 @@ package body MLib.Utl is
       return Name_Buffer (1 .. Name_Len - Libgnat'Length);
    end Lib_Directory;
 
+   ------------------------
+   -- Specify_Adalib_Dir --
+   ------------------------
+
+   procedure Specify_Adalib_Dir (Path : String) is
+   begin
+      if Path'Length = 0 then
+         Adalib_Path := null;
+      else
+         Adalib_Path := new String'(Path);
+      end if;
+   end Specify_Adalib_Dir;
+
 end MLib.Utl;
index 237c678..f91eebf 100644 (file)
@@ -58,4 +58,10 @@ package MLib.Utl is
    function Lib_Directory return String;
    --  Return the directory containing libgnat
 
+   procedure Specify_Adalib_Dir (Path : String);
+   --  Specify the path of the GNAT adalib directory, to be returned by
+   --  function Lib_Directory without looking for it. This is used only in
+   --  gprlib, because we cannot rely on the search in Lib_Directory, as the
+   --  GNAT version may be different for gprbuild/gprlib and the compiler.
+
 end MLib.Utl;