Commit 65aa56ec by Vincent Celier Committed by Arnaud Charlet

back_end.adb (Scan_Compiler_Arguments): Check if Search_Directory_Present is True and...

2006-02-13  Vincent Celier  <celier@adacore.com>

	* back_end.adb (Scan_Compiler_Arguments): Check if
	Search_Directory_Present is True and, if it is, add the argument in
	the source search directory path.

	* switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
	Search_Directory_Present to True.

From-SVN: r111044
parent fd013778
......@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2006, 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- --
......@@ -238,11 +238,10 @@ package body Back_End is
-- Loop through command line arguments, storing them for later access
while Next_Arg < save_argc loop
Look_At_Arg : declare
Argv_Ptr : constant BSP := save_argv (Next_Arg);
Argv_Len : constant Nat := Len_Arg (Next_Arg);
Argv : constant String := Argv_Ptr (1 .. Natural (Argv_Len));
Argv_Ptr : constant BSP := save_argv (Next_Arg);
Argv_Len : constant Nat := Len_Arg (Next_Arg);
Argv : constant String := Argv_Ptr (1 .. Natural (Argv_Len));
begin
-- If the previous switch has set the Output_File_Name_Present
......@@ -260,6 +259,18 @@ package body Back_End is
Output_File_Name_Seen := True;
end if;
-- If the previous switch has set the Search_Directory_Present
-- flag (that is if we have just seen -I), then the next
-- argument is a search directory path.
elsif Search_Directory_Present then
if Is_Switch (Argv) then
Fail ("search directory missing after -I");
else
Add_Src_Search_Dir (Argv);
Search_Directory_Present := False;
end if;
elsif not Is_Switch (Argv) then -- must be a file name
Add_File (Argv);
......
......@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2001-2005, Free Software Foundation, Inc. --
-- Copyright (C) 2001-2006, 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- --
......@@ -102,12 +102,16 @@ package body Switch.C is
if Switch_Chars (Ptr) = 'I' then
Store_Switch := False;
Ptr := Ptr + 1;
-- Set flag Search_Directory_Present if switch is "-I" only:
-- the directory will be the next argument.
if Ptr > Max then
Bad_Switch (C);
if Ptr = Max then
Search_Directory_Present := True;
return;
end if;
Ptr := Ptr + 1;
-- Find out whether this is a -I- or regular -Ixxx switch
if Ptr = Max and then Switch_Chars (Ptr) = '-' then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment