mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-18 13:59:47 +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);
|
||||
Var
|
||||
List : TStringList;
|
||||
List,List2 : TStringList;
|
||||
DirectoryList : TStringList;
|
||||
RemainingList : TStrings;
|
||||
i : longint;
|
||||
begin
|
||||
List:=TStringList.Create;
|
||||
List:=TUnsortedDuplicatesStringList.Create;
|
||||
List.Duplicates:=DupIgnore;
|
||||
try
|
||||
List.Add(APackage.GetUnitConfigOutputFilename(ACPU,AOS));
|
||||
APackage.GetCleanFiles(List,ACPU,AOS);
|
||||
if (List.Count>0) then
|
||||
begin
|
||||
CmdDeleteFiles(List);
|
||||
DirectoryList := TStringList.Create;
|
||||
DirectoryList:=TUnsortedDuplicatesStringList.Create;
|
||||
DirectoryList.Duplicates:=DupIgnore;
|
||||
try
|
||||
GetDirectoriesFromFilelist(List,DirectoryList);
|
||||
CmdRemoveDirs(DirectoryList);
|
||||
@ -8049,9 +8051,18 @@ begin
|
||||
Installer.Log(vlWarning,Format(SWarnRemovedNonEmptyDirectory,[APackage.Directory+APackage.GetBinOutputDir(ACPU,AOS)]));
|
||||
DirectoryList.Add(APackage.GetBinOutputDir(ACPU,AOS));
|
||||
RemainingList := TStringList.Create;
|
||||
List2:=TStringList.Create;
|
||||
SearchFiles(AllFilesMask, APackage.GetBinOutputDir(ACPU,AOS), true, RemainingList);
|
||||
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;
|
||||
CmdRemoveTrees(DirectoryList);
|
||||
DirectoryList.Clear;
|
||||
@ -8062,9 +8073,18 @@ begin
|
||||
Installer.Log(vlWarning,Format(SWarnRemovedNonEmptyDirectory,[APackage.Directory+APackage.GetUnitsOutputDir(ACPU,AOS)]));
|
||||
DirectoryList.Add(APackage.GetUnitsOutputDir(ACPU,AOS));
|
||||
RemainingList := TStringList.Create;
|
||||
List2:=TStringList.Create;
|
||||
SearchFiles(AllFilesMask, APackage.GetUnitsOutputDir(ACPU,AOS), true, RemainingList);
|
||||
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;
|
||||
CmdRemoveTrees(DirectoryList);
|
||||
DirectoryList.Clear;
|
||||
|
Loading…
Reference in New Issue
Block a user