clean.adb (Clean_Archive): Use untouched casing for the archive name and the corresponding .deps file.
2007-04-20 Pascal Obry <obry@adacore.com> * clean.adb (Clean_Archive): Use untouched casing for the archive name and the corresponding .deps file. (Clean_Interface_Copy_Directory): Use untouched casing for the library src directory. Minor code-clean-up. Use untouched casing for files read into the library src dir. (Clean_Library_Directory): Idem. (Parse_Cmd_Line): Accept new switch -aP From-SVN: r125389
This commit is contained in:
parent
11b4899f8a
commit
109949cd3c
|
@ -6,7 +6,7 @@
|
|||
-- --
|
||||
-- B o d y --
|
||||
-- --
|
||||
-- Copyright (C) 2003-2006, Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 2003-2007, 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- --
|
||||
|
@ -181,10 +181,10 @@ package body Clean is
|
|||
procedure Add_Object_Directories is
|
||||
new Prj.Env.For_All_Object_Dirs (Action => Add_Object_Dir);
|
||||
|
||||
function ALI_File_Name (Source : Name_Id) return String;
|
||||
function ALI_File_Name (Source : File_Name_Type) return String;
|
||||
-- Returns the name of the ALI file corresponding to Source
|
||||
|
||||
function Assembly_File_Name (Source : Name_Id) return String;
|
||||
function Assembly_File_Name (Source : File_Name_Type) return String;
|
||||
-- Returns the assembly file name corresponding to Source
|
||||
|
||||
procedure Clean_Archive (Project : Project_Id);
|
||||
|
@ -195,8 +195,8 @@ package body Clean is
|
|||
-- Do the cleaning work when no project file is specified
|
||||
|
||||
procedure Clean_Interface_Copy_Directory (Project : Project_Id);
|
||||
-- Delete files in an interface coy directory directory: any file that is
|
||||
-- a copy of a source of the project.
|
||||
-- Delete files in an interface copy directory: any file that is a copy of
|
||||
-- a source of the project.
|
||||
|
||||
procedure Clean_Library_Directory (Project : Project_Id);
|
||||
-- Delete the library file in a library directory and any ALI file
|
||||
|
@ -208,35 +208,36 @@ package body Clean is
|
|||
-- project files in the tree rooted at the main project file and switch -r
|
||||
-- has been specified.
|
||||
|
||||
function Debug_File_Name (Source : Name_Id) return String;
|
||||
function Debug_File_Name (Source : File_Name_Type) return String;
|
||||
-- Name of the expanded source file corresponding to Source
|
||||
|
||||
procedure Delete (In_Directory : String; File : String);
|
||||
-- Delete one file, or list the file name if switch -n is specified
|
||||
|
||||
procedure Delete_Binder_Generated_Files (Dir : String; Source : Name_Id);
|
||||
procedure Delete_Binder_Generated_Files
|
||||
(Dir : String;
|
||||
Source : File_Name_Type);
|
||||
-- Delete the binder generated file in directory Dir for Source, if they
|
||||
-- exist: for Unix these are b~<source>.ads, b~<source>.adb,
|
||||
-- b~<source>.ali and b~<source>.o.
|
||||
|
||||
procedure Display_Copyright;
|
||||
-- Display the Copyright notice.
|
||||
-- If called several times, display the Copyright notice only the first
|
||||
-- time.
|
||||
-- Display the Copyright notice. If called several times, display the
|
||||
-- Copyright notice only the first time.
|
||||
|
||||
procedure Initialize;
|
||||
-- Call the necessary package initializations
|
||||
|
||||
function Object_File_Name (Source : Name_Id) return String;
|
||||
function Object_File_Name (Source : File_Name_Type) return String;
|
||||
-- Returns the object file name corresponding to Source
|
||||
|
||||
procedure Parse_Cmd_Line;
|
||||
-- Parse the command line
|
||||
|
||||
function Repinfo_File_Name (Source : Name_Id) return String;
|
||||
function Repinfo_File_Name (Source : File_Name_Type) return String;
|
||||
-- Returns the repinfo file name corresponding to Source
|
||||
|
||||
function Tree_File_Name (Source : Name_Id) return String;
|
||||
function Tree_File_Name (Source : File_Name_Type) return String;
|
||||
-- Returns the tree file name corresponding to Source
|
||||
|
||||
function In_Extension_Chain
|
||||
|
@ -290,7 +291,7 @@ package body Clean is
|
|||
-- ALI_File_Name --
|
||||
-------------------
|
||||
|
||||
function ALI_File_Name (Source : Name_Id) return String is
|
||||
function ALI_File_Name (Source : File_Name_Type) return String is
|
||||
Src : constant String := Get_Name_String (Source);
|
||||
|
||||
begin
|
||||
|
@ -313,7 +314,7 @@ package body Clean is
|
|||
-- Assembly_File_Name --
|
||||
------------------------
|
||||
|
||||
function Assembly_File_Name (Source : Name_Id) return String is
|
||||
function Assembly_File_Name (Source : File_Name_Type) return String is
|
||||
Src : constant String := Get_Name_String (Source);
|
||||
|
||||
begin
|
||||
|
@ -337,19 +338,22 @@ package body Clean is
|
|||
-------------------
|
||||
|
||||
procedure Clean_Archive (Project : Project_Id) is
|
||||
Current_Dir : constant Dir_Name_Str := Get_Current_Dir;
|
||||
Data : constant Project_Data :=
|
||||
Project_Tree.Projects.Table (Project);
|
||||
Current_Dir : constant Dir_Name_Str := Get_Current_Dir;
|
||||
Data : constant Project_Data :=
|
||||
Project_Tree.Projects.Table (Project);
|
||||
Lib_Prefix : constant String :=
|
||||
"lib" & Get_Name_String (Data.Display_Name);
|
||||
|
||||
Archive_Name : constant String :=
|
||||
"lib" & Get_Name_String (Data.Name) & '.' & Archive_Ext;
|
||||
Lib_Prefix & '.' & Archive_Ext;
|
||||
-- The name of the archive file for this project
|
||||
|
||||
Archive_Dep_Name : constant String :=
|
||||
"lib" & Get_Name_String (Data.Name) & ".deps";
|
||||
Lib_Prefix & ".deps";
|
||||
-- The name of the archive dependency file for this project
|
||||
|
||||
Obj_Dir : constant String := Get_Name_String (Data.Object_Directory);
|
||||
Obj_Dir : constant String :=
|
||||
Get_Name_String (Data.Display_Object_Dir);
|
||||
|
||||
begin
|
||||
Change_Dir (Obj_Dir);
|
||||
|
@ -382,7 +386,7 @@ package body Clean is
|
|||
Full_Lib_File : File_Name_Type;
|
||||
-- Full name of the current ALI file
|
||||
|
||||
Text : Text_Buffer_Ptr;
|
||||
Text : Text_Buffer_Ptr;
|
||||
The_ALI : ALI_Id;
|
||||
|
||||
begin
|
||||
|
@ -505,9 +509,10 @@ package body Clean is
|
|||
|
||||
if not Compile_Only then
|
||||
declare
|
||||
Source : constant Name_Id := Strip_Suffix (Main_Lib_File);
|
||||
Executable : constant String := Get_Name_String
|
||||
(Executable_Name (Source));
|
||||
Source : constant File_Name_Type :=
|
||||
Strip_Suffix (Main_Lib_File);
|
||||
Executable : constant String :=
|
||||
Get_Name_String (Executable_Name (Source));
|
||||
begin
|
||||
if Is_Regular_File (Executable) then
|
||||
Delete ("", Executable);
|
||||
|
@ -536,13 +541,13 @@ package body Clean is
|
|||
Unit : Unit_Data;
|
||||
|
||||
begin
|
||||
if Data.Library and then Data.Library_Src_Dir /= No_Name then
|
||||
if Data.Library and then Data.Library_Src_Dir /= No_Path then
|
||||
declare
|
||||
Directory : constant String :=
|
||||
Get_Name_String (Data.Library_Src_Dir);
|
||||
Get_Name_String (Data.Display_Library_Src_Dir);
|
||||
|
||||
begin
|
||||
Change_Dir (Get_Name_String (Data.Library_Src_Dir));
|
||||
Change_Dir (Directory);
|
||||
Open (Direc, ".");
|
||||
|
||||
-- For each regular file in the directory, if switch -n has not
|
||||
|
@ -553,46 +558,53 @@ package body Clean is
|
|||
Read (Direc, Name, Last);
|
||||
exit when Last = 0;
|
||||
|
||||
if Is_Regular_File (Name (1 .. Last)) then
|
||||
Canonical_Case_File_Name (Name (1 .. Last));
|
||||
Delete_File := False;
|
||||
declare
|
||||
Filename : constant String := Name (1 .. Last);
|
||||
|
||||
-- Compare with source file names of the project
|
||||
begin
|
||||
if Is_Regular_File (Filename) then
|
||||
Canonical_Case_File_Name (Name (1 .. Last));
|
||||
Delete_File := False;
|
||||
|
||||
for Index in 1 .. Unit_Table.Last (Project_Tree.Units) loop
|
||||
Unit := Project_Tree.Units.Table (Index);
|
||||
-- Compare with source file names of the project
|
||||
|
||||
if Ultimate_Extension_Of
|
||||
(Unit.File_Names (Body_Part).Project) = Project
|
||||
and then
|
||||
Get_Name_String
|
||||
(Unit.File_Names (Body_Part).Name) =
|
||||
Name (1 .. Last)
|
||||
then
|
||||
Delete_File := True;
|
||||
exit;
|
||||
for Index in
|
||||
1 .. Unit_Table.Last (Project_Tree.Units)
|
||||
loop
|
||||
Unit := Project_Tree.Units.Table (Index);
|
||||
|
||||
if Ultimate_Extension_Of
|
||||
(Unit.File_Names (Body_Part).Project) = Project
|
||||
and then
|
||||
Get_Name_String
|
||||
(Unit.File_Names (Body_Part).Name) =
|
||||
Name (1 .. Last)
|
||||
then
|
||||
Delete_File := True;
|
||||
exit;
|
||||
end if;
|
||||
|
||||
if Ultimate_Extension_Of
|
||||
(Unit.File_Names (Specification).Project) = Project
|
||||
and then
|
||||
Get_Name_String
|
||||
(Unit.File_Names (Specification).Name) =
|
||||
Name (1 .. Last)
|
||||
then
|
||||
Delete_File := True;
|
||||
exit;
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
if Delete_File then
|
||||
if not Do_Nothing then
|
||||
Set_Writable (Filename);
|
||||
end if;
|
||||
|
||||
Delete (Directory, Filename);
|
||||
end if;
|
||||
|
||||
if Ultimate_Extension_Of
|
||||
(Unit.File_Names (Specification).Project) = Project
|
||||
and then
|
||||
Get_Name_String
|
||||
(Unit.File_Names (Specification).Name) =
|
||||
Name (1 .. Last)
|
||||
then
|
||||
Delete_File := True;
|
||||
exit;
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
if Delete_File then
|
||||
if not Do_Nothing then
|
||||
Set_Writable (Name (1 .. Last));
|
||||
end if;
|
||||
|
||||
Delete (Directory, Name (1 .. Last));
|
||||
end if;
|
||||
end if;
|
||||
end;
|
||||
end loop;
|
||||
|
||||
Close (Direc);
|
||||
|
@ -613,9 +625,9 @@ package body Clean is
|
|||
Data : constant Project_Data := Project_Tree.Projects.Table (Project);
|
||||
|
||||
Lib_Filename : constant String := Get_Name_String (Data.Library_Name);
|
||||
DLL_Name : constant String :=
|
||||
DLL_Name : String :=
|
||||
DLL_Prefix & Lib_Filename & "." & DLL_Ext;
|
||||
Archive_Name : constant String :=
|
||||
Archive_Name : String :=
|
||||
"lib" & Lib_Filename & "." & Archive_Ext;
|
||||
Direc : Dir_Type;
|
||||
|
||||
|
@ -628,11 +640,15 @@ package body Clean is
|
|||
if Data.Library then
|
||||
declare
|
||||
Lib_Directory : constant String :=
|
||||
Get_Name_String (Data.Library_Dir);
|
||||
Get_Name_String (Data.Display_Library_Dir);
|
||||
Lib_ALI_Directory : constant String :=
|
||||
Get_Name_String (Data.Library_ALI_Dir);
|
||||
Get_Name_String
|
||||
(Data.Display_Library_ALI_Dir);
|
||||
|
||||
begin
|
||||
Canonical_Case_File_Name (Archive_Name);
|
||||
Canonical_Case_File_Name (DLL_Name);
|
||||
|
||||
Change_Dir (Lib_Directory);
|
||||
Open (Direc, ".");
|
||||
|
||||
|
@ -644,26 +660,29 @@ package body Clean is
|
|||
Read (Direc, Name, Last);
|
||||
exit when Last = 0;
|
||||
|
||||
if Is_Regular_File (Name (1 .. Last)) then
|
||||
Canonical_Case_File_Name (Name (1 .. Last));
|
||||
Delete_File := False;
|
||||
declare
|
||||
Filename : constant String := Name (1 .. Last);
|
||||
begin
|
||||
if Is_Regular_File (Filename) then
|
||||
Canonical_Case_File_Name (Name (1 .. Last));
|
||||
Delete_File := False;
|
||||
|
||||
if (Data.Library_Kind = Static and then
|
||||
Name (1 .. Last) = Archive_Name)
|
||||
or else
|
||||
((Data.Library_Kind = Dynamic or else
|
||||
Data.Library_Kind = Relocatable)
|
||||
and then
|
||||
Name (1 .. Last) = DLL_Name)
|
||||
then
|
||||
if not Do_Nothing then
|
||||
Set_Writable (Name (1 .. Last));
|
||||
if (Data.Library_Kind = Static
|
||||
and then Name (1 .. Last) = Archive_Name)
|
||||
or else
|
||||
((Data.Library_Kind = Dynamic or else
|
||||
Data.Library_Kind = Relocatable)
|
||||
and then Name (1 .. Last) = DLL_Name)
|
||||
then
|
||||
if not Do_Nothing then
|
||||
Set_Writable (Filename);
|
||||
end if;
|
||||
|
||||
Delete (Lib_Directory, Filename);
|
||||
exit;
|
||||
end if;
|
||||
|
||||
Delete (Lib_Directory, Name (1 .. Last));
|
||||
exit;
|
||||
end if;
|
||||
end if;
|
||||
end;
|
||||
end loop;
|
||||
|
||||
Close (Direc);
|
||||
|
@ -679,71 +698,74 @@ package body Clean is
|
|||
Read (Direc, Name, Last);
|
||||
exit when Last = 0;
|
||||
|
||||
if Is_Regular_File (Name (1 .. Last)) then
|
||||
Canonical_Case_File_Name (Name (1 .. Last));
|
||||
Delete_File := False;
|
||||
declare
|
||||
Filename : constant String := Name (1 .. Last);
|
||||
begin
|
||||
if Is_Regular_File (Filename) then
|
||||
Canonical_Case_File_Name (Name (1 .. Last));
|
||||
Delete_File := False;
|
||||
|
||||
if Last > 4 and then Name (Last - 3 .. Last) = ".ali" then
|
||||
declare
|
||||
Unit : Unit_Data;
|
||||
begin
|
||||
-- Compare with ALI file names of the project
|
||||
if Last > 4 and then Name (Last - 3 .. Last) = ".ali" then
|
||||
declare
|
||||
Unit : Unit_Data;
|
||||
begin
|
||||
-- Compare with ALI file names of the project
|
||||
|
||||
for
|
||||
Index in 1 .. Unit_Table.Last (Project_Tree.Units)
|
||||
loop
|
||||
Unit := Project_Tree.Units.Table (Index);
|
||||
for
|
||||
Index in 1 .. Unit_Table.Last (Project_Tree.Units)
|
||||
loop
|
||||
Unit := Project_Tree.Units.Table (Index);
|
||||
|
||||
if Unit.File_Names (Body_Part).Project /=
|
||||
No_Project
|
||||
then
|
||||
if Ultimate_Extension_Of
|
||||
(Unit.File_Names (Body_Part).Project) =
|
||||
Project
|
||||
if Unit.File_Names (Body_Part).Project /=
|
||||
No_Project
|
||||
then
|
||||
if Ultimate_Extension_Of
|
||||
(Unit.File_Names (Body_Part).Project) =
|
||||
Project
|
||||
then
|
||||
Get_Name_String
|
||||
(Unit.File_Names (Body_Part).Name);
|
||||
Name_Len := Name_Len -
|
||||
File_Extension
|
||||
(Name (1 .. Name_Len))'Length;
|
||||
if Name_Buffer (1 .. Name_Len) =
|
||||
Name (1 .. Last - 4)
|
||||
then
|
||||
Delete_File := True;
|
||||
exit;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
elsif Ultimate_Extension_Of
|
||||
(Unit.File_Names (Specification).Project) =
|
||||
Project
|
||||
then
|
||||
Get_Name_String
|
||||
(Unit.File_Names (Body_Part).Name);
|
||||
(Unit.File_Names (Specification).Name);
|
||||
Name_Len := Name_Len -
|
||||
File_Extension
|
||||
(Name (1 .. Name_Len))'Length;
|
||||
|
||||
if Name_Buffer (1 .. Name_Len) =
|
||||
Name (1 .. Last - 4)
|
||||
Name (1 .. Last - 4)
|
||||
then
|
||||
Delete_File := True;
|
||||
exit;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
elsif Ultimate_Extension_Of
|
||||
(Unit.File_Names (Specification).Project) =
|
||||
Project
|
||||
then
|
||||
Get_Name_String
|
||||
(Unit.File_Names (Specification).Name);
|
||||
Name_Len := Name_Len -
|
||||
File_Extension
|
||||
(Name (1 .. Name_Len))'Length;
|
||||
|
||||
if Name_Buffer (1 .. Name_Len) =
|
||||
Name (1 .. Last - 4)
|
||||
then
|
||||
Delete_File := True;
|
||||
exit;
|
||||
end if;
|
||||
end if;
|
||||
end loop;
|
||||
end;
|
||||
end if;
|
||||
|
||||
if Delete_File then
|
||||
if not Do_Nothing then
|
||||
Set_Writable (Name (1 .. Last));
|
||||
end loop;
|
||||
end;
|
||||
end if;
|
||||
|
||||
Delete (Lib_ALI_Directory, Name (1 .. Last));
|
||||
end if;
|
||||
if Delete_File then
|
||||
if not Do_Nothing then
|
||||
Set_Writable (Filename);
|
||||
end if;
|
||||
|
||||
end if;
|
||||
Delete (Lib_ALI_Directory, Filename);
|
||||
end if;
|
||||
end if;
|
||||
end;
|
||||
end loop;
|
||||
|
||||
Close (Direc);
|
||||
|
@ -763,16 +785,16 @@ package body Clean is
|
|||
Main_Source_File : File_Name_Type;
|
||||
-- Name of executable on the command line without directory info
|
||||
|
||||
Executable : Name_Id;
|
||||
Executable : File_Name_Type;
|
||||
-- Name of the executable file
|
||||
|
||||
Current_Dir : constant Dir_Name_Str := Get_Current_Dir;
|
||||
Data : constant Project_Data :=
|
||||
Project_Tree.Projects.Table (Project);
|
||||
U_Data : Unit_Data;
|
||||
File_Name1 : Name_Id;
|
||||
File_Name1 : File_Name_Type;
|
||||
Index1 : Int;
|
||||
File_Name2 : Name_Id;
|
||||
File_Name2 : File_Name_Type;
|
||||
Index2 : Int;
|
||||
Lib_File : File_Name_Type;
|
||||
|
||||
|
@ -814,10 +836,10 @@ package body Clean is
|
|||
Processed_Projects.Increment_Last;
|
||||
Processed_Projects.Table (Processed_Projects.Last) := Project;
|
||||
|
||||
if Data.Object_Directory /= No_Name then
|
||||
if Data.Object_Directory /= No_Path then
|
||||
declare
|
||||
Obj_Dir : constant String :=
|
||||
Get_Name_String (Data.Object_Directory);
|
||||
Get_Name_String (Data.Display_Object_Dir);
|
||||
|
||||
begin
|
||||
Change_Dir (Obj_Dir);
|
||||
|
@ -837,8 +859,8 @@ package body Clean is
|
|||
Unit_Table.Last (Project_Tree.Units)
|
||||
loop
|
||||
U_Data := Project_Tree.Units.Table (Unit);
|
||||
File_Name1 := No_Name;
|
||||
File_Name2 := No_Name;
|
||||
File_Name1 := No_File;
|
||||
File_Name2 := No_File;
|
||||
|
||||
-- If either the spec or the body is a source of the
|
||||
-- project, check for the corresponding ALI file in the
|
||||
|
@ -858,10 +880,10 @@ package body Clean is
|
|||
-- If there is no body file name, then there may be
|
||||
-- only a spec.
|
||||
|
||||
if File_Name1 = No_Name then
|
||||
if File_Name1 = No_File then
|
||||
File_Name1 := File_Name2;
|
||||
Index1 := Index2;
|
||||
File_Name2 := No_Name;
|
||||
File_Name2 := No_File;
|
||||
Index2 := 0;
|
||||
end if;
|
||||
end if;
|
||||
|
@ -869,7 +891,7 @@ package body Clean is
|
|||
-- If there is either a spec or a body, look for files
|
||||
-- in the object directory.
|
||||
|
||||
if File_Name1 /= No_Name then
|
||||
if File_Name1 /= No_File then
|
||||
Lib_File := Osint.Lib_File_Name (File_Name1, Index1);
|
||||
|
||||
declare
|
||||
|
@ -882,9 +904,9 @@ package body Clean is
|
|||
Adt : constant String :=
|
||||
Tree_File_Name (Lib_File);
|
||||
Deb : constant String :=
|
||||
Debug_File_Name (File_Name1);
|
||||
Debug_File_Name (File_Name1);
|
||||
Rep : constant String :=
|
||||
Repinfo_File_Name (File_Name1);
|
||||
Repinfo_File_Name (File_Name1);
|
||||
Del : Boolean := True;
|
||||
|
||||
begin
|
||||
|
@ -948,7 +970,7 @@ package body Clean is
|
|||
|
||||
-- Second expanded source file
|
||||
|
||||
if File_Name2 /= No_Name then
|
||||
if File_Name2 /= No_File then
|
||||
declare
|
||||
Deb : constant String :=
|
||||
Debug_File_Name (File_Name2);
|
||||
|
@ -1040,16 +1062,17 @@ package body Clean is
|
|||
if not Compile_Only then
|
||||
Clean_Library_Directory (Project);
|
||||
|
||||
if Data.Library_Src_Dir /= No_Name then
|
||||
if Data.Library_Src_Dir /= No_Path then
|
||||
Clean_Interface_Copy_Directory (Project);
|
||||
end if;
|
||||
end if;
|
||||
|
||||
if Data.Standalone_Library and then
|
||||
Data.Object_Directory /= No_Name
|
||||
Data.Object_Directory /= No_Path
|
||||
then
|
||||
Delete_Binder_Generated_Files
|
||||
(Get_Name_String (Data.Object_Directory), Data.Library_Name);
|
||||
(Get_Name_String (Data.Display_Object_Dir),
|
||||
Data.Library_Name);
|
||||
end if;
|
||||
end if;
|
||||
|
||||
|
@ -1106,10 +1129,10 @@ package body Clean is
|
|||
|
||||
-- The executables are deleted only if switch -c is not specified
|
||||
|
||||
if Project = Main_Project and then Data.Exec_Directory /= No_Name then
|
||||
if Project = Main_Project and then Data.Exec_Directory /= No_Path then
|
||||
declare
|
||||
Exec_Dir : constant String :=
|
||||
Get_Name_String (Data.Exec_Directory);
|
||||
Get_Name_String (Data.Display_Exec_Dir);
|
||||
|
||||
begin
|
||||
Change_Dir (Exec_Dir);
|
||||
|
@ -1143,10 +1166,9 @@ package body Clean is
|
|||
end;
|
||||
end if;
|
||||
|
||||
if Data.Object_Directory /= No_Name then
|
||||
if Data.Object_Directory /= No_Path then
|
||||
Delete_Binder_Generated_Files
|
||||
(Get_Name_String
|
||||
(Data.Object_Directory),
|
||||
(Get_Name_String (Data.Display_Object_Dir),
|
||||
Strip_Suffix (Main_Source_File));
|
||||
end if;
|
||||
end loop;
|
||||
|
@ -1162,7 +1184,7 @@ package body Clean is
|
|||
-- Debug_File_Name --
|
||||
---------------------
|
||||
|
||||
function Debug_File_Name (Source : Name_Id) return String is
|
||||
function Debug_File_Name (Source : File_Name_Type) return String is
|
||||
begin
|
||||
return Get_Name_String (Source) & Debug_Suffix;
|
||||
end Debug_File_Name;
|
||||
|
@ -1173,8 +1195,8 @@ package body Clean is
|
|||
|
||||
procedure Delete (In_Directory : String; File : String) is
|
||||
Full_Name : String (1 .. In_Directory'Length + File'Length + 1);
|
||||
Last : Natural := 0;
|
||||
Success : Boolean;
|
||||
Last : Natural := 0;
|
||||
Success : Boolean;
|
||||
|
||||
begin
|
||||
-- Indicate that at least one file is deleted or is to be deleted
|
||||
|
@ -1229,7 +1251,10 @@ package body Clean is
|
|||
-- Delete_Binder_Generated_Files --
|
||||
-----------------------------------
|
||||
|
||||
procedure Delete_Binder_Generated_Files (Dir : String; Source : Name_Id) is
|
||||
procedure Delete_Binder_Generated_Files
|
||||
(Dir : String;
|
||||
Source : File_Name_Type)
|
||||
is
|
||||
Source_Name : constant String := Get_Name_String (Source);
|
||||
Current : constant String := Get_Current_Dir;
|
||||
Last : constant Positive := B_Start'Length + Source_Name'Length;
|
||||
|
@ -1546,7 +1571,7 @@ package body Clean is
|
|||
begin
|
||||
-- Do not insert an empty name or an already marked source
|
||||
|
||||
if Lib_File /= No_Name and then not Makeutl.Is_Marked (Lib_File) then
|
||||
if Lib_File /= No_File and then not Makeutl.Is_Marked (Lib_File) then
|
||||
Q.Table (Q.Last) := Lib_File;
|
||||
Q.Increment_Last;
|
||||
|
||||
|
@ -1560,7 +1585,7 @@ package body Clean is
|
|||
-- Object_File_Name --
|
||||
----------------------
|
||||
|
||||
function Object_File_Name (Source : Name_Id) return String is
|
||||
function Object_File_Name (Source : File_Name_Type) return String is
|
||||
Src : constant String := Get_Name_String (Source);
|
||||
|
||||
begin
|
||||
|
@ -1584,9 +1609,9 @@ package body Clean is
|
|||
--------------------
|
||||
|
||||
procedure Parse_Cmd_Line is
|
||||
Source_Index : Int := 0;
|
||||
Index : Positive := 1;
|
||||
Last : constant Natural := Argument_Count;
|
||||
Source_Index : Int := 0;
|
||||
Index : Positive := 1;
|
||||
|
||||
begin
|
||||
while Index <= Last loop
|
||||
|
@ -1614,11 +1639,20 @@ package body Clean is
|
|||
|
||||
case Arg (2) is
|
||||
when 'a' =>
|
||||
if Arg'Length < 4 or else Arg (3) /= 'O' then
|
||||
if Arg'Length < 4 then
|
||||
Bad_Argument;
|
||||
end if;
|
||||
|
||||
Add_Lib_Search_Dir (Arg (3 .. Arg'Last));
|
||||
if Arg (3) = 'O' then
|
||||
Add_Lib_Search_Dir (Arg (4 .. Arg'Last));
|
||||
|
||||
elsif Arg (3) = 'P' then
|
||||
Prj.Ext.Add_Search_Project_Directory
|
||||
(Arg (4 .. Arg'Last));
|
||||
|
||||
else
|
||||
Bad_Argument;
|
||||
end if;
|
||||
|
||||
when 'c' =>
|
||||
Compile_Only := True;
|
||||
|
@ -1824,7 +1858,7 @@ package body Clean is
|
|||
-- Repinfo_File_Name --
|
||||
-----------------------
|
||||
|
||||
function Repinfo_File_Name (Source : Name_Id) return String is
|
||||
function Repinfo_File_Name (Source : File_Name_Type) return String is
|
||||
begin
|
||||
return Get_Name_String (Source) & Repinfo_Suffix;
|
||||
end Repinfo_File_Name;
|
||||
|
@ -1833,7 +1867,7 @@ package body Clean is
|
|||
-- Tree_File_Name --
|
||||
--------------------
|
||||
|
||||
function Tree_File_Name (Source : Name_Id) return String is
|
||||
function Tree_File_Name (Source : File_Name_Type) return String is
|
||||
Src : constant String := Get_Name_String (Source);
|
||||
|
||||
begin
|
||||
|
@ -1914,4 +1948,5 @@ package body Clean is
|
|||
New_Line;
|
||||
end if;
|
||||
end Usage;
|
||||
|
||||
end Clean;
|
||||
|
|
Loading…
Reference in New Issue