mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 04:06:08 +02:00
* Use DupIgnore for TBuildEngine.Clean list of files to delete
+ Generate list of remaining files and call CmdDeleteFiles git-svn-id: trunk@41418 -
This commit is contained in:
parent
1a564de6e6
commit
54ae0f7d64
@ -8016,19 +8016,21 @@ end;
|
|||||||
|
|
||||||
procedure TBuildEngine.Clean(APackage: TPackage; ACPU: TCPU; AOS: TOS);
|
procedure TBuildEngine.Clean(APackage: TPackage; ACPU: TCPU; AOS: TOS);
|
||||||
Var
|
Var
|
||||||
List : TStringList;
|
List,List2 : TStringList;
|
||||||
DirectoryList : TStringList;
|
DirectoryList : TStringList;
|
||||||
RemainingList : TStrings;
|
RemainingList : TStrings;
|
||||||
i : longint;
|
i : longint;
|
||||||
begin
|
begin
|
||||||
List:=TStringList.Create;
|
List:=TUnsortedDuplicatesStringList.Create;
|
||||||
|
List.Duplicates:=DupIgnore;
|
||||||
try
|
try
|
||||||
List.Add(APackage.GetUnitConfigOutputFilename(ACPU,AOS));
|
List.Add(APackage.GetUnitConfigOutputFilename(ACPU,AOS));
|
||||||
APackage.GetCleanFiles(List,ACPU,AOS);
|
APackage.GetCleanFiles(List,ACPU,AOS);
|
||||||
if (List.Count>0) then
|
if (List.Count>0) then
|
||||||
begin
|
begin
|
||||||
CmdDeleteFiles(List);
|
CmdDeleteFiles(List);
|
||||||
DirectoryList := TStringList.Create;
|
DirectoryList:=TUnsortedDuplicatesStringList.Create;
|
||||||
|
DirectoryList.Duplicates:=DupIgnore;
|
||||||
try
|
try
|
||||||
GetDirectoriesFromFilelist(List,DirectoryList);
|
GetDirectoriesFromFilelist(List,DirectoryList);
|
||||||
CmdRemoveDirs(DirectoryList);
|
CmdRemoveDirs(DirectoryList);
|
||||||
@ -8049,9 +8051,18 @@ begin
|
|||||||
Installer.Log(vlWarning,Format(SWarnRemovedNonEmptyDirectory,[APackage.Directory+APackage.GetBinOutputDir(ACPU,AOS)]));
|
Installer.Log(vlWarning,Format(SWarnRemovedNonEmptyDirectory,[APackage.Directory+APackage.GetBinOutputDir(ACPU,AOS)]));
|
||||||
DirectoryList.Add(APackage.GetBinOutputDir(ACPU,AOS));
|
DirectoryList.Add(APackage.GetBinOutputDir(ACPU,AOS));
|
||||||
RemainingList := TStringList.Create;
|
RemainingList := TStringList.Create;
|
||||||
|
List2:=TStringList.Create;
|
||||||
SearchFiles(AllFilesMask, APackage.GetBinOutputDir(ACPU,AOS), true, RemainingList);
|
SearchFiles(AllFilesMask, APackage.GetBinOutputDir(ACPU,AOS), true, RemainingList);
|
||||||
for i:=0 to RemainingList.Count-1 do
|
for i:=0 to RemainingList.Count-1 do
|
||||||
Installer.log(vlDebug,format('File %s still present',[RemainingList[i]]));
|
begin
|
||||||
|
if ExtractFileExt(Remaininglist[i])=PPUExt then
|
||||||
|
Installer.log(vlDebug,format('File %s still present, add corresponding entry to fpmake',[RemainingList[i]]))
|
||||||
|
else
|
||||||
|
Installer.log(vlDebug,format('File %s still present',[RemainingList[i]]));
|
||||||
|
List2.Add(IncludeTrailingPathDelimiter(APackage.GetUnitsOutputDir(ACPU,AOS))+Remaininglist[i]);
|
||||||
|
end;
|
||||||
|
CmdDeleteFiles(List2);
|
||||||
|
List2.Free;
|
||||||
RemainingList.Free;
|
RemainingList.Free;
|
||||||
CmdRemoveTrees(DirectoryList);
|
CmdRemoveTrees(DirectoryList);
|
||||||
DirectoryList.Clear;
|
DirectoryList.Clear;
|
||||||
@ -8062,9 +8073,18 @@ begin
|
|||||||
Installer.Log(vlWarning,Format(SWarnRemovedNonEmptyDirectory,[APackage.Directory+APackage.GetUnitsOutputDir(ACPU,AOS)]));
|
Installer.Log(vlWarning,Format(SWarnRemovedNonEmptyDirectory,[APackage.Directory+APackage.GetUnitsOutputDir(ACPU,AOS)]));
|
||||||
DirectoryList.Add(APackage.GetUnitsOutputDir(ACPU,AOS));
|
DirectoryList.Add(APackage.GetUnitsOutputDir(ACPU,AOS));
|
||||||
RemainingList := TStringList.Create;
|
RemainingList := TStringList.Create;
|
||||||
|
List2:=TStringList.Create;
|
||||||
SearchFiles(AllFilesMask, APackage.GetUnitsOutputDir(ACPU,AOS), true, RemainingList);
|
SearchFiles(AllFilesMask, APackage.GetUnitsOutputDir(ACPU,AOS), true, RemainingList);
|
||||||
for i:=0 to RemainingList.Count-1 do
|
for i:=0 to RemainingList.Count-1 do
|
||||||
Installer.log(vlDebug,format('File %s still present',[RemainingList[i]]));
|
begin
|
||||||
|
if ExtractFileExt(Remaininglist[i])=PPUExt then
|
||||||
|
Installer.log(vlDebug,format('File %s still present, add corresponding entry to fpmake',[RemainingList[i]]))
|
||||||
|
else
|
||||||
|
Installer.log(vlDebug,format('File %s still present',[RemainingList[i]]));
|
||||||
|
List2.Add(IncludeTrailingPathDelimiter(APackage.GetUnitsOutputDir(ACPU,AOS))+RemainingList[i]);
|
||||||
|
end;
|
||||||
|
CmdDeleteFiles(List2);
|
||||||
|
List2.free;
|
||||||
RemainingList.Free;
|
RemainingList.Free;
|
||||||
CmdRemoveTrees(DirectoryList);
|
CmdRemoveTrees(DirectoryList);
|
||||||
DirectoryList.Clear;
|
DirectoryList.Clear;
|
||||||
|
Loading…
Reference in New Issue
Block a user