mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-21 01:59:10 +02:00
added Abort Build
git-svn-id: trunk@4385 -
This commit is contained in:
parent
0a7ac9d03a
commit
8a77658903
@ -320,7 +320,11 @@ begin
|
|||||||
TheProcess.WaitOnExit;
|
TheProcess.WaitOnExit;
|
||||||
TheProcess.Free;
|
TheProcess.Free;
|
||||||
end;
|
end;
|
||||||
if not ErrorOccurred then
|
if ErrorOccurred then
|
||||||
|
Result:=mrCancel
|
||||||
|
else if TheOutputFilter.Aborted then
|
||||||
|
Result:=mrAbort
|
||||||
|
else
|
||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
except
|
except
|
||||||
on e: EOutputFilterError do begin
|
on e: EOutputFilterError do begin
|
||||||
|
@ -157,15 +157,16 @@ const
|
|||||||
|
|
||||||
// compile menu
|
// compile menu
|
||||||
ecBuild = ecUserFirst + 400;
|
ecBuild = ecUserFirst + 400;
|
||||||
ecRun = ecUserFirst + 401;
|
ecBuildAll = ecUserFirst + 401;
|
||||||
ecPause = ecUserFirst + 402;
|
ecAbortBuild = ecUserFirst + 402;
|
||||||
ecStepInto = ecUserFirst + 403;
|
ecRun = ecUserFirst + 403;
|
||||||
ecStepOver = ecUserFirst + 404;
|
ecPause = ecUserFirst + 404;
|
||||||
ecRunToCursor = ecUserFirst + 405;
|
ecStepInto = ecUserFirst + 405;
|
||||||
ecStopProgram = ecUserFirst + 406;
|
ecStepOver = ecUserFirst + 406;
|
||||||
ecBuildAll = ecUserFirst + 407;
|
ecRunToCursor = ecUserFirst + 407;
|
||||||
ecBuildLazarus = ecUserFirst + 408;
|
ecStopProgram = ecUserFirst + 408;
|
||||||
ecResetDebugger = ecUserFirst + 409;
|
ecResetDebugger = ecUserFirst + 409;
|
||||||
|
ecBuildLazarus = ecUserFirst + 410;
|
||||||
|
|
||||||
// project menu
|
// project menu
|
||||||
ecNewProject = ecUserFirst + 500;
|
ecNewProject = ecUserFirst + 500;
|
||||||
@ -628,6 +629,7 @@ begin
|
|||||||
// run menu (menu string resource)
|
// run menu (menu string resource)
|
||||||
ecBuild : Result:= srkmecBuild;
|
ecBuild : Result:= srkmecBuild;
|
||||||
ecBuildAll : Result:= srkmecBuildAll;
|
ecBuildAll : Result:= srkmecBuildAll;
|
||||||
|
ecAbortBuild : Result:= srkmecAbortBuild;
|
||||||
ecRun : Result:= srkmecRun;
|
ecRun : Result:= srkmecRun;
|
||||||
ecPause : Result:= srkmecPause;
|
ecPause : Result:= srkmecPause;
|
||||||
ecStepInto : Result:= lisMenuStepInto;
|
ecStepInto : Result:= lisMenuStepInto;
|
||||||
@ -1474,6 +1476,7 @@ begin
|
|||||||
C:=Categories[AddCategory('RunMenu',srkmCatRunMenu,caAll)];
|
C:=Categories[AddCategory('RunMenu',srkmCatRunMenu,caAll)];
|
||||||
Add(C,'Build project/program',ecBuild,VK_F9,[ssCtrl],VK_UNKNOWN,[]);
|
Add(C,'Build project/program',ecBuild,VK_F9,[ssCtrl],VK_UNKNOWN,[]);
|
||||||
Add(C,'Build all files of project/program',ecBuildAll,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
Add(C,'Build all files of project/program',ecBuildAll,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
|
Add(C,'Abort building',ecAbortBuild,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
Add(C,'Run program',ecRun,VK_F9,[],VK_UNKNOWN,[]);
|
Add(C,'Run program',ecRun,VK_F9,[],VK_UNKNOWN,[]);
|
||||||
Add(C,'Pause program',ecPause,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
Add(C,'Pause program',ecPause,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
Add(C,'Step into',ecStepInto,VK_F7,[],VK_UNKNOWN,[]);
|
Add(C,'Step into',ecStepInto,VK_F7,[],VK_UNKNOWN,[]);
|
||||||
|
@ -195,6 +195,7 @@ resourcestring
|
|||||||
|
|
||||||
lisMenuBuild = 'Build';
|
lisMenuBuild = 'Build';
|
||||||
lisMenuBuildAll = 'Build all';
|
lisMenuBuildAll = 'Build all';
|
||||||
|
lisMenuAbortBuild = 'Abort Build';
|
||||||
lisMenuProjectRun = 'Run';
|
lisMenuProjectRun = 'Run';
|
||||||
lisMenuPause = 'Pause';
|
lisMenuPause = 'Pause';
|
||||||
lisMenuStepInto = 'Step into';
|
lisMenuStepInto = 'Step into';
|
||||||
@ -1131,6 +1132,7 @@ resourcestring
|
|||||||
// run menu
|
// run menu
|
||||||
srkmecBuild = 'build program/project';
|
srkmecBuild = 'build program/project';
|
||||||
srkmecBuildAll = 'build all files of program/project';
|
srkmecBuildAll = 'build all files of program/project';
|
||||||
|
srkmecAbortBuild = 'abort build';
|
||||||
srkmecRun = 'run program';
|
srkmecRun = 'run program';
|
||||||
srkmecPause = 'pause program';
|
srkmecPause = 'pause program';
|
||||||
srkmecStopProgram = 'stop program';
|
srkmecStopProgram = 'stop program';
|
||||||
|
19
ide/main.pp
19
ide/main.pp
@ -183,6 +183,7 @@ type
|
|||||||
// run menu
|
// run menu
|
||||||
procedure mnuBuildProjectClicked(Sender : TObject);
|
procedure mnuBuildProjectClicked(Sender : TObject);
|
||||||
procedure mnuBuildAllProjectClicked(Sender : TObject);
|
procedure mnuBuildAllProjectClicked(Sender : TObject);
|
||||||
|
procedure mnuAbortBuildProjectClicked(Sender : TObject);
|
||||||
procedure mnuRunProjectClicked(Sender : TObject);
|
procedure mnuRunProjectClicked(Sender : TObject);
|
||||||
procedure mnuPauseProjectClicked(Sender : TObject);
|
procedure mnuPauseProjectClicked(Sender : TObject);
|
||||||
procedure mnuStepIntoProjectClicked(Sender : TObject);
|
procedure mnuStepIntoProjectClicked(Sender : TObject);
|
||||||
@ -496,6 +497,7 @@ type
|
|||||||
procedure DoWarnAmbigiousFiles;
|
procedure DoWarnAmbigiousFiles;
|
||||||
function DoSaveForBuild: TModalResult; override;
|
function DoSaveForBuild: TModalResult; override;
|
||||||
function DoBuildProject(BuildAll: boolean): TModalResult;
|
function DoBuildProject(BuildAll: boolean): TModalResult;
|
||||||
|
function DoAbortBuild: TModalResult;
|
||||||
function DoInitProjectRun: TModalResult; override;
|
function DoInitProjectRun: TModalResult; override;
|
||||||
function DoRunProject: TModalResult;
|
function DoRunProject: TModalResult;
|
||||||
function SomethingOfProjectIsModified: boolean;
|
function SomethingOfProjectIsModified: boolean;
|
||||||
@ -1492,6 +1494,7 @@ begin
|
|||||||
inherited;
|
inherited;
|
||||||
itmProjectBuild.OnClick := @mnuBuildProjectClicked;
|
itmProjectBuild.OnClick := @mnuBuildProjectClicked;
|
||||||
itmProjectBuildAll.OnClick := @mnuBuildAllProjectClicked;
|
itmProjectBuildAll.OnClick := @mnuBuildAllProjectClicked;
|
||||||
|
itmProjectAbortBuild.OnClick := @mnuAbortBuildProjectClicked;
|
||||||
itmProjectRun.OnClick := @mnuRunProjectClicked;
|
itmProjectRun.OnClick := @mnuRunProjectClicked;
|
||||||
itmProjectPause.Enabled := false;
|
itmProjectPause.Enabled := false;
|
||||||
itmProjectPause.OnClick := @mnuPauseProjectClicked;
|
itmProjectPause.OnClick := @mnuPauseProjectClicked;
|
||||||
@ -1792,6 +1795,7 @@ begin
|
|||||||
|
|
||||||
ecBuild,
|
ecBuild,
|
||||||
ecBuildAll: DoBuildProject(Command=ecBuildAll);
|
ecBuildAll: DoBuildProject(Command=ecBuildAll);
|
||||||
|
ecAbortBuild: DoAbortBuild;
|
||||||
|
|
||||||
ecRun: DoRunProject;
|
ecRun: DoRunProject;
|
||||||
ecPause: DebugBoss.DoPauseProject;
|
ecPause: DebugBoss.DoPauseProject;
|
||||||
@ -2265,6 +2269,11 @@ Begin
|
|||||||
DoBuildProject(true);
|
DoBuildProject(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Procedure TMainIDE.mnuAbortBuildProjectClicked(Sender : TObject);
|
||||||
|
Begin
|
||||||
|
DoAbortBuild;
|
||||||
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuRunProjectClicked(Sender : TObject);
|
Procedure TMainIDE.mnuRunProjectClicked(Sender : TObject);
|
||||||
begin
|
begin
|
||||||
DoRunProject;
|
DoRunProject;
|
||||||
@ -5572,6 +5581,13 @@ begin
|
|||||||
DoCheckFilesOnDisk;
|
DoCheckFilesOnDisk;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TMainIDE.DoAbortBuild: TModalResult;
|
||||||
|
begin
|
||||||
|
Result:=mrOk;
|
||||||
|
if ToolStatus<>itBuilder then exit;
|
||||||
|
TheOutputFilter.StopExecute:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoInitProjectRun: TModalResult;
|
function TMainIDE.DoInitProjectRun: TModalResult;
|
||||||
var
|
var
|
||||||
ProgramFilename, WorkingDir: String;
|
ProgramFilename, WorkingDir: String;
|
||||||
@ -9338,6 +9354,9 @@ end.
|
|||||||
|
|
||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.620 2003/07/08 11:30:22 mattias
|
||||||
|
added Abort Build
|
||||||
|
|
||||||
Revision 1.619 2003/07/07 18:06:05 mattias
|
Revision 1.619 2003/07/07 18:06:05 mattias
|
||||||
fixed switching TARGET_OS
|
fixed switching TARGET_OS
|
||||||
|
|
||||||
|
@ -297,6 +297,7 @@ type
|
|||||||
// run menu
|
// run menu
|
||||||
itmProjectBuild: TMenuItem;
|
itmProjectBuild: TMenuItem;
|
||||||
itmProjectBuildAll: TMenuItem;
|
itmProjectBuildAll: TMenuItem;
|
||||||
|
itmProjectAbortBuild: TMenuItem;
|
||||||
itmProjectRun: TMenuItem;
|
itmProjectRun: TMenuItem;
|
||||||
itmProjectPause: TMenuItem;
|
itmProjectPause: TMenuItem;
|
||||||
itmProjectStepInto: TMenuItem;
|
itmProjectStepInto: TMenuItem;
|
||||||
@ -1112,6 +1113,11 @@ begin
|
|||||||
itmProjectBuildAll.Graphic:=LoadPixmap('menu_buildall');
|
itmProjectBuildAll.Graphic:=LoadPixmap('menu_buildall');
|
||||||
mnuRun.Add(itmProjectBuildAll);
|
mnuRun.Add(itmProjectBuildAll);
|
||||||
|
|
||||||
|
itmProjectAbortBuild := TMenuItem.Create(Self);
|
||||||
|
itmProjectAbortBuild.Name:='itmProjectAbortBuild';
|
||||||
|
itmProjectAbortBuild.Caption := lisMenuAbortBuild;
|
||||||
|
mnuRun.Add(itmProjectAbortBuild);
|
||||||
|
|
||||||
mnuRun.Add(CreateMenuSeparator);
|
mnuRun.Add(CreateMenuSeparator);
|
||||||
|
|
||||||
itmProjectRun := TMenuItem.Create(Self);
|
itmProjectRun := TMenuItem.Create(Self);
|
||||||
@ -1426,6 +1432,7 @@ begin
|
|||||||
// run menu
|
// run menu
|
||||||
itmProjectBuild.ShortCut:=CommandToShortCut(ecBuild);
|
itmProjectBuild.ShortCut:=CommandToShortCut(ecBuild);
|
||||||
itmProjectBuildAll.ShortCut:=CommandToShortCut(ecBuildAll);
|
itmProjectBuildAll.ShortCut:=CommandToShortCut(ecBuildAll);
|
||||||
|
itmProjectAbortBuild.ShortCut:=CommandToShortCut(ecAbortBuild);
|
||||||
itmProjectRun.ShortCut:=CommandToShortCut(ecRun);
|
itmProjectRun.ShortCut:=CommandToShortCut(ecRun);
|
||||||
itmProjectPause.ShortCut:=CommandToShortCut(ecPause);
|
itmProjectPause.ShortCut:=CommandToShortCut(ecPause);
|
||||||
itmProjectStepInto.ShortCut:=CommandToShortCut(ecStepInto);
|
itmProjectStepInto.ShortCut:=CommandToShortCut(ecStepInto);
|
||||||
|
@ -72,6 +72,7 @@ type
|
|||||||
procedure InternalSetCurrentDirectory(const Dir: string);
|
procedure InternalSetCurrentDirectory(const Dir: string);
|
||||||
public
|
public
|
||||||
ErrorExists: boolean;
|
ErrorExists: boolean;
|
||||||
|
Aborted: boolean;
|
||||||
function Execute(TheProcess: TProcess): boolean;
|
function Execute(TheProcess: TProcess): boolean;
|
||||||
function GetSourcePosition(const Line: string; var Filename:string;
|
function GetSourcePosition(const Line: string; var Filename:string;
|
||||||
var CaretXY: TPoint; var MsgType: TErrorType): boolean;
|
var CaretXY: TPoint; var MsgType: TErrorType): boolean;
|
||||||
@ -159,9 +160,16 @@ begin
|
|||||||
|
|
||||||
OutputLine:='';
|
OutputLine:='';
|
||||||
ErrorExists:=true;
|
ErrorExists:=true;
|
||||||
|
Aborted:=false;
|
||||||
repeat
|
repeat
|
||||||
Application.ProcessMessages;
|
Application.ProcessMessages;
|
||||||
if StopExecute then exit;
|
if StopExecute then begin
|
||||||
|
TheProcess.Terminate(0);
|
||||||
|
Aborted:=true;
|
||||||
|
Result:=false;
|
||||||
|
ReadLine('aborted',true);
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
|
||||||
if TheProcess.Output<>nil then
|
if TheProcess.Output<>nil then
|
||||||
Count:=TheProcess.Output.Read(Buf[1],length(Buf))
|
Count:=TheProcess.Output.Read(Buf[1],length(Buf))
|
||||||
|
Loading…
Reference in New Issue
Block a user