mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-06 11:27:45 +01:00
IDE: when compiling project to test build directory delete all ppu and o files
git-svn-id: trunk@56863 -
This commit is contained in:
parent
6001e4b474
commit
fc39438535
40
ide/main.pp
40
ide/main.pp
@ -800,6 +800,7 @@ type
|
|||||||
function DoBuildProject(const AReason: TCompileReason;
|
function DoBuildProject(const AReason: TCompileReason;
|
||||||
Flags: TProjectBuildFlags;
|
Flags: TProjectBuildFlags;
|
||||||
FinalizeResources: boolean = True): TModalResult; override;
|
FinalizeResources: boolean = True): TModalResult; override;
|
||||||
|
function CleanUpTestUnitOutputDir(Dir: string): TModalResult;
|
||||||
function UpdateProjectPOFile(AProject: TProject): TModalResult;
|
function UpdateProjectPOFile(AProject: TProject): TModalResult;
|
||||||
function DoAbortBuild(Interactive: boolean): TModalResult;
|
function DoAbortBuild(Interactive: boolean): TModalResult;
|
||||||
procedure DoCompile;
|
procedure DoCompile;
|
||||||
@ -6762,8 +6763,8 @@ begin
|
|||||||
UnitOutputDirectory:=Project1.CompilerOptions.GetUnitOutPath(false);
|
UnitOutputDirectory:=Project1.CompilerOptions.GetUnitOutPath(false);
|
||||||
if Project1.IsVirtual and (not FilenameIsAbsolute(UnitOutputDirectory)) then
|
if Project1.IsVirtual and (not FilenameIsAbsolute(UnitOutputDirectory)) then
|
||||||
UnitOutputDirectory:=TrimFilename(WorkingDir+PathDelim+UnitOutputDirectory);
|
UnitOutputDirectory:=TrimFilename(WorkingDir+PathDelim+UnitOutputDirectory);
|
||||||
if (FilenameIsAbsolute(UnitOutputDirectory))
|
if FilenameIsAbsolute(UnitOutputDirectory) then begin
|
||||||
and (not DirPathExistsCached(UnitOutputDirectory)) then begin
|
if (not DirPathExistsCached(UnitOutputDirectory)) then begin
|
||||||
if not FileIsInPath(UnitOutputDirectory,WorkingDir) then begin
|
if not FileIsInPath(UnitOutputDirectory,WorkingDir) then begin
|
||||||
Result:=IDEQuestionDialog(lisCreateDirectory,
|
Result:=IDEQuestionDialog(lisCreateDirectory,
|
||||||
Format(lisTheOutputDirectoryIsMissing, [UnitOutputDirectory]),
|
Format(lisTheOutputDirectoryIsMissing, [UnitOutputDirectory]),
|
||||||
@ -6777,6 +6778,15 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
if Project1.IsVirtual
|
||||||
|
and (FileIsInPath(UnitOutputDirectory,EnvironmentOptions.GetParsedTestBuildDirectory))
|
||||||
|
then begin
|
||||||
|
// clean up test units
|
||||||
|
Result:=CleanUpTestUnitOutputDir(UnitOutputDirectory);
|
||||||
|
if Result<>mrOk then
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
// create target output directory
|
// create target output directory
|
||||||
TargetExeName := Project1.CompilerOptions.CreateTargetFilename;
|
TargetExeName := Project1.CompilerOptions.CreateTargetFilename;
|
||||||
@ -6905,6 +6915,32 @@ begin
|
|||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TMainIDE.CleanUpTestUnitOutputDir(Dir: string): TModalResult;
|
||||||
|
var
|
||||||
|
Files: TStrings;
|
||||||
|
i: Integer;
|
||||||
|
Filename, Ext: String;
|
||||||
|
begin
|
||||||
|
Dir:=AppendPathDelim(Dir);
|
||||||
|
Files:=TStringListUTF8.Create;
|
||||||
|
try
|
||||||
|
CodeToolBoss.DirectoryCachePool.GetListing(Dir,Files,false);
|
||||||
|
for i:=0 to Files.Count-1 do begin
|
||||||
|
Filename:=Files[i];
|
||||||
|
Ext:=ExtractFileExt(Filename);
|
||||||
|
if (SysUtils.CompareText(Ext,'.ppu')=0)
|
||||||
|
or (SysUtils.CompareText(Ext,'.o')=0)
|
||||||
|
then begin
|
||||||
|
Result:=DeleteFileInteractive(Dir+Filename,[]);
|
||||||
|
if Result<>mrOk then exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
InvalidateFileStateCache(Dir);
|
||||||
|
finally
|
||||||
|
Files.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoAbortBuild(Interactive: boolean): TModalResult;
|
function TMainIDE.DoAbortBuild(Interactive: boolean): TModalResult;
|
||||||
begin
|
begin
|
||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user