[Ada] fix order of source search path
Arnaud Charlet
charlet@adacore.com
Thu Jun 16 09:33:00 GMT 2005
Tested on i686-linux, committed on mainline.
Directories listed in env vars ADA_INCLUDE_PATH and ADA_OBJECTS_PATH
are taken into account even when using project files. However, the
source and object directories of the project files should come before
these directories coming from the env vars, otherwise it is not possible
to hide in a project a source coming from those directories.
2005-06-14 Vincent Celier <celier@adacore.com>
* osint.adb (Add_Default_Search_Dirs): Put source and object
directories of project files before directories coming from
ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
-------------- next part --------------
Index: osint.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/osint.adb,v
retrieving revision 1.26
diff -u -p -r1.26 osint.adb
--- osint.adb 20 Jul 2004 10:26:51 -0000 1.26
+++ osint.adb 15 Jun 2005 15:47:47 -0000
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2005 Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -314,7 +314,7 @@ package body Osint is
-- For the call to Close
begin
- -- Construct a C compatible character string buffer.
+ -- Construct a C compatible character string buffer
Buffer (1 .. Buffer'Last - 1) := Path_File_Name.all;
Buffer (Buffer'Last) := ASCII.NUL;
@@ -409,6 +409,20 @@ package body Osint is
-- environment variable. Get this value, extract the directory names
-- and store in the tables.
+ -- Check for eventual project path file env vars
+
+ Path_File_Name := Getenv (Project_Include_Path_File);
+
+ if Path_File_Name'Length > 0 then
+ Get_Dirs_From_File (Additional_Source_Dir => True);
+ end if;
+
+ Path_File_Name := Getenv (Project_Objects_Path_File);
+
+ if Path_File_Name'Length > 0 then
+ Get_Dirs_From_File (Additional_Source_Dir => False);
+ end if;
+
-- On VMS, don't expand the logical name (e.g. environment variable),
-- just put it into Unix (e.g. canonical) format. System services
-- will handle the expansion as part of the file processing.
@@ -443,21 +457,7 @@ package body Osint is
end loop;
end loop;
- -- Check for eventual project path file env vars
-
- Path_File_Name := Getenv (Project_Include_Path_File);
-
- if Path_File_Name'Length > 0 then
- Get_Dirs_From_File (Additional_Source_Dir => True);
- end if;
-
- Path_File_Name := Getenv (Project_Objects_Path_File);
-
- if Path_File_Name'Length > 0 then
- Get_Dirs_From_File (Additional_Source_Dir => False);
- end if;
-
- -- For the compiler, if --RTS= was apecified, add the runtime
+ -- For the compiler, if --RTS= was specified, add the runtime
-- directories.
if RTS_Src_Path_Name /= null and then
More information about the Gcc-patches
mailing list