mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 09:09:17 +02:00
IDE: new menu item: quick compile
git-svn-id: trunk@9776 -
This commit is contained in:
parent
588a4a2408
commit
0a80cefe54
@ -56,9 +56,9 @@ type
|
|||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
function Compile(AProject: TProject; BuildAll: boolean;
|
function Compile(AProject: TProject;
|
||||||
const WorkingDir, CompilerFilename, CompilerParams: string
|
const WorkingDir, CompilerFilename, CompilerParams: string;
|
||||||
): TModalResult;
|
BuildAll, SkipLinking, SkipAssembler: boolean): TModalResult;
|
||||||
procedure WriteError(const Msg: string);
|
procedure WriteError(const Msg: string);
|
||||||
property OnCommandLineCreate: TOnCmdLineCreate read FOnCmdLineCreate
|
property OnCommandLineCreate: TOnCmdLineCreate read FOnCmdLineCreate
|
||||||
write FOnCmdLineCreate;
|
write FOnCmdLineCreate;
|
||||||
@ -92,8 +92,9 @@ end;
|
|||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
TCompiler Compile
|
TCompiler Compile
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
function TCompiler.Compile(AProject: TProject; BuildAll: boolean;
|
function TCompiler.Compile(AProject: TProject;
|
||||||
const WorkingDir, CompilerFilename, CompilerParams: string): TModalResult;
|
const WorkingDir, CompilerFilename, CompilerParams: string;
|
||||||
|
BuildAll, SkipLinking, SkipAssembler: boolean): TModalResult;
|
||||||
var
|
var
|
||||||
CmdLine : String;
|
CmdLine : String;
|
||||||
Abort : Boolean;
|
Abort : Boolean;
|
||||||
@ -132,6 +133,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
if BuildAll then
|
if BuildAll then
|
||||||
CmdLine := CmdLine+' -B';
|
CmdLine := CmdLine+' -B';
|
||||||
|
if SkipLinking and SkipAssembler then
|
||||||
|
CmdLine := CmdLine+' -s'
|
||||||
|
else if SkipLinking then
|
||||||
|
CmdLine := CmdLine+' -Cn';
|
||||||
|
|
||||||
if CompilerParams<>'' then
|
if CompilerParams<>'' then
|
||||||
CmdLine := CmdLine+' '+CompilerParams;
|
CmdLine := CmdLine+' '+CompilerParams;
|
||||||
if Assigned(FOnCmdLineCreate) then begin
|
if Assigned(FOnCmdLineCreate) then begin
|
||||||
|
@ -483,6 +483,7 @@ begin
|
|||||||
// run menu
|
// run menu
|
||||||
ecBuild: SetResult(VK_F9,[ssCtrl],VK_UNKNOWN,[]);
|
ecBuild: SetResult(VK_F9,[ssCtrl],VK_UNKNOWN,[]);
|
||||||
ecBuildAll: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
ecBuildAll: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
|
ecQuickCompile: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
ecAbortBuild: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
ecAbortBuild: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
ecRun: SetResult(VK_F9,[],VK_UNKNOWN,[]);
|
ecRun: SetResult(VK_F9,[],VK_UNKNOWN,[]);
|
||||||
ecPause: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
ecPause: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
@ -794,6 +795,7 @@ begin
|
|||||||
// run menu
|
// run menu
|
||||||
ecBuild: SetResult(VK_F9,[ssCtrl],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
ecBuild: SetResult(VK_F9,[ssCtrl],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
ecBuildAll: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
ecBuildAll: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
|
ecQuickCompile: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
ecAbortBuild: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
ecAbortBuild: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
ecRun: SetResult(VK_F9,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
ecRun: SetResult(VK_F9,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
ecPause: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
ecPause: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||||
@ -1362,6 +1364,7 @@ begin
|
|||||||
// run menu (menu string resource)
|
// run menu (menu string resource)
|
||||||
ecBuild : Result:= srkmecBuild;
|
ecBuild : Result:= srkmecBuild;
|
||||||
ecBuildAll : Result:= srkmecBuildAll;
|
ecBuildAll : Result:= srkmecBuildAll;
|
||||||
|
ecQuickCompile : Result:= srkmecQuickCompile;
|
||||||
ecAbortBuild : Result:= srkmecAbortBuild;
|
ecAbortBuild : Result:= srkmecAbortBuild;
|
||||||
ecRun : Result:= srkmecRun;
|
ecRun : Result:= srkmecRun;
|
||||||
ecPause : Result:= srkmecPause;
|
ecPause : Result:= srkmecPause;
|
||||||
@ -2287,6 +2290,7 @@ begin
|
|||||||
C:=Categories[AddCategory('RunMenu',srkmCatRunMenu,nil)];
|
C:=Categories[AddCategory('RunMenu',srkmCatRunMenu,nil)];
|
||||||
AddDefault(C,'Build project/program',ecBuild);
|
AddDefault(C,'Build project/program',ecBuild);
|
||||||
AddDefault(C,'Build all files of project/program',ecBuildAll);
|
AddDefault(C,'Build all files of project/program',ecBuildAll);
|
||||||
|
AddDefault(C,'Quick compile, no linking',ecQuickCompile);
|
||||||
AddDefault(C,'Abort building',ecAbortBuild);
|
AddDefault(C,'Abort building',ecAbortBuild);
|
||||||
AddDefault(C,'Run program',ecRun);
|
AddDefault(C,'Run program',ecRun);
|
||||||
AddDefault(C,'Pause program',ecPause);
|
AddDefault(C,'Pause program',ecPause);
|
||||||
|
@ -251,6 +251,7 @@ resourcestring
|
|||||||
|
|
||||||
lisMenuBuild = 'Build';
|
lisMenuBuild = 'Build';
|
||||||
lisMenuBuildAll = 'Build all';
|
lisMenuBuildAll = 'Build all';
|
||||||
|
lisMenuQuickCompile = 'Quick compile';
|
||||||
lisMenuAbortBuild = 'Abort Build';
|
lisMenuAbortBuild = 'Abort Build';
|
||||||
lisMenuProjectRun = 'Run';
|
lisMenuProjectRun = 'Run';
|
||||||
lisMenuPause = 'Pause';
|
lisMenuPause = 'Pause';
|
||||||
@ -1532,6 +1533,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';
|
||||||
|
srkmecQuickCompile = 'quick compile, no linking';
|
||||||
srkmecAbortBuild = 'abort build';
|
srkmecAbortBuild = 'abort build';
|
||||||
srkmecRun = 'run program';
|
srkmecRun = 'run program';
|
||||||
srkmecPause = 'pause program';
|
srkmecPause = 'pause program';
|
||||||
|
51
ide/main.pp
51
ide/main.pp
@ -247,6 +247,7 @@ type
|
|||||||
// run menu
|
// run menu
|
||||||
procedure mnuBuildProjectClicked(Sender: TObject);
|
procedure mnuBuildProjectClicked(Sender: TObject);
|
||||||
procedure mnuBuildAllProjectClicked(Sender: TObject);
|
procedure mnuBuildAllProjectClicked(Sender: TObject);
|
||||||
|
procedure mnuQuickCompileProjectClicked(Sender: TObject);
|
||||||
procedure mnuAbortBuildProjectClicked(Sender: TObject);
|
procedure mnuAbortBuildProjectClicked(Sender: TObject);
|
||||||
procedure mnuRunProjectClicked(Sender: TObject);
|
procedure mnuRunProjectClicked(Sender: TObject);
|
||||||
procedure mnuPauseProjectClicked(Sender: TObject);
|
procedure mnuPauseProjectClicked(Sender: TObject);
|
||||||
@ -672,6 +673,7 @@ type
|
|||||||
function DoBuildProject(const AReason: TCompileReason;
|
function DoBuildProject(const AReason: TCompileReason;
|
||||||
Flags: TProjectBuildFlags): TModalResult;
|
Flags: TProjectBuildFlags): TModalResult;
|
||||||
function DoAbortBuild: TModalResult;
|
function DoAbortBuild: TModalResult;
|
||||||
|
procedure DoQuickCompile;
|
||||||
function DoInitProjectRun: TModalResult; override;
|
function DoInitProjectRun: TModalResult; override;
|
||||||
function DoRunProject: TModalResult;
|
function DoRunProject: TModalResult;
|
||||||
function SomethingOfProjectIsModified: boolean;
|
function SomethingOfProjectIsModified: boolean;
|
||||||
@ -2054,6 +2056,7 @@ begin
|
|||||||
with MainIDEBar do begin
|
with MainIDEBar do begin
|
||||||
itmRunMenuBuild.OnClick := @mnuBuildProjectClicked;
|
itmRunMenuBuild.OnClick := @mnuBuildProjectClicked;
|
||||||
itmRunMenuBuildAll.OnClick := @mnuBuildAllProjectClicked;
|
itmRunMenuBuildAll.OnClick := @mnuBuildAllProjectClicked;
|
||||||
|
itmRunMenuQuickCompile.OnClick := @mnuQuickCompileProjectClicked;
|
||||||
itmRunMenuAbortBuild.OnClick := @mnuAbortBuildProjectClicked;
|
itmRunMenuAbortBuild.OnClick := @mnuAbortBuildProjectClicked;
|
||||||
itmRunMenuRun.OnClick := @mnuRunProjectClicked;
|
itmRunMenuRun.OnClick := @mnuRunProjectClicked;
|
||||||
itmRunMenuPause.Enabled := false;
|
itmRunMenuPause.Enabled := false;
|
||||||
@ -2457,6 +2460,7 @@ begin
|
|||||||
|
|
||||||
ecBuildAll: DoBuildProject(crBuild,[pbfCleanCompile,
|
ecBuildAll: DoBuildProject(crBuild,[pbfCleanCompile,
|
||||||
pbfCompileDependenciesClean]);
|
pbfCompileDependenciesClean]);
|
||||||
|
ecQuickCompile:DoQuickCompile;
|
||||||
ecAbortBuild: DoAbortBuild;
|
ecAbortBuild: DoAbortBuild;
|
||||||
|
|
||||||
ecRun:
|
ecRun:
|
||||||
@ -3228,6 +3232,11 @@ Begin
|
|||||||
DoBuildProject(crBuild,[pbfCleanCompile,pbfCompileDependenciesClean]);
|
DoBuildProject(crBuild,[pbfCleanCompile,pbfCompileDependenciesClean]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TMainIDE.mnuQuickCompileProjectClicked(Sender: TObject);
|
||||||
|
begin
|
||||||
|
DoQuickCompile;
|
||||||
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuAbortBuildProjectClicked(Sender: TObject);
|
Procedure TMainIDE.mnuAbortBuildProjectClicked(Sender: TObject);
|
||||||
Begin
|
Begin
|
||||||
DoAbortBuild;
|
DoAbortBuild;
|
||||||
@ -7637,13 +7646,15 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// execute compilation tool 'Before'
|
// execute compilation tool 'Before'
|
||||||
ToolBefore:=TProjectCompilationToolOptions(
|
if not (pbfSkipTools in Flags) then begin
|
||||||
|
ToolBefore:=TProjectCompilationToolOptions(
|
||||||
Project1.CompilerOptions.ExecuteBefore);
|
Project1.CompilerOptions.ExecuteBefore);
|
||||||
if (AReason in ToolBefore.CompileReasons) then begin
|
if (AReason in ToolBefore.CompileReasons) then begin
|
||||||
Result:=DoExecuteCompilationTool(Project1.CompilerOptions.ExecuteBefore,
|
Result:=DoExecuteCompilationTool(Project1.CompilerOptions.ExecuteBefore,
|
||||||
Project1.ProjectDirectory,
|
Project1.ProjectDirectory,
|
||||||
lisExecutingCommandBefore);
|
lisExecutingCommandBefore);
|
||||||
if Result<>mrOk then exit;
|
if Result<>mrOk then exit;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (AReason in Project1.CompilerOptions.CompileReasons)
|
if (AReason in Project1.CompilerOptions.CompileReasons)
|
||||||
@ -7655,8 +7666,10 @@ begin
|
|||||||
ConnectOutputFilter;
|
ConnectOutputFilter;
|
||||||
|
|
||||||
// compile
|
// compile
|
||||||
Result:=TheCompiler.Compile(Project1, pbfCleanCompile in Flags,
|
Result:=TheCompiler.Compile(Project1,
|
||||||
WorkingDir,CompilerFilename,CompilerParams);
|
WorkingDir,CompilerFilename,CompilerParams,
|
||||||
|
pbfCleanCompile in Flags,pbfSkipLinking in Flags,
|
||||||
|
pbfSkipAssembler in Flags);
|
||||||
if Result<>mrOk then begin
|
if Result<>mrOk then begin
|
||||||
DoJumpToCompilerMessage(-1,true);
|
DoJumpToCompilerMessage(-1,true);
|
||||||
exit;
|
exit;
|
||||||
@ -7670,13 +7683,16 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// execute compilation tool 'After'
|
// execute compilation tool 'After'
|
||||||
ToolAfter:=TProjectCompilationToolOptions(Project1.CompilerOptions.ExecuteAfter);
|
if not (pbfSkipTools in Flags) then begin
|
||||||
// no need to check for mrOk, we are exit if it wasn't
|
ToolAfter:=TProjectCompilationToolOptions(
|
||||||
if (AReason in ToolAfter.CompileReasons) then begin
|
Project1.CompilerOptions.ExecuteAfter);
|
||||||
Result:=DoExecuteCompilationTool(Project1.CompilerOptions.ExecuteAfter,
|
// no need to check for mrOk, we are exit if it wasn't
|
||||||
Project1.ProjectDirectory,
|
if (AReason in ToolAfter.CompileReasons) then begin
|
||||||
lisExecutingCommandAfter);
|
Result:=DoExecuteCompilationTool(Project1.CompilerOptions.ExecuteAfter,
|
||||||
if Result<>mrOk then exit;
|
Project1.ProjectDirectory,
|
||||||
|
lisExecutingCommandAfter);
|
||||||
|
if Result<>mrOk then exit;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// add success message
|
// add success message
|
||||||
@ -7699,6 +7715,11 @@ begin
|
|||||||
TheOutputFilter.StopExecute:=true;
|
TheOutputFilter.StopExecute:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TMainIDE.DoQuickCompile;
|
||||||
|
begin
|
||||||
|
DoBuildProject(crCompile,[pbfSkipLinking,pbfSkipTools,pbfSkipAssembler]);
|
||||||
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoInitProjectRun: TModalResult;
|
function TMainIDE.DoInitProjectRun: TModalResult;
|
||||||
var
|
var
|
||||||
ProgramFilename: string;
|
ProgramFilename: string;
|
||||||
|
@ -229,6 +229,7 @@ type
|
|||||||
//itmRunBuilding: TIDEMenuSection;
|
//itmRunBuilding: TIDEMenuSection;
|
||||||
itmRunMenuBuild: TIDEMenuCommand;
|
itmRunMenuBuild: TIDEMenuCommand;
|
||||||
itmRunMenuBuildAll: TIDEMenuCommand;
|
itmRunMenuBuildAll: TIDEMenuCommand;
|
||||||
|
itmRunMenuQuickCompile: TIDEMenuCommand;
|
||||||
itmRunMenuAbortBuild: TIDEMenuCommand;
|
itmRunMenuAbortBuild: TIDEMenuCommand;
|
||||||
//itmRunnning: TIDEMenuSection;
|
//itmRunnning: TIDEMenuSection;
|
||||||
itmRunMenuRun: TIDEMenuCommand;
|
itmRunMenuRun: TIDEMenuCommand;
|
||||||
|
@ -615,6 +615,7 @@ begin
|
|||||||
|
|
||||||
CreateMenuItem(ParentMI,itmRunMenuBuild,'itmRunMenuBuild',lisMenuBuild,'menu_build');
|
CreateMenuItem(ParentMI,itmRunMenuBuild,'itmRunMenuBuild',lisMenuBuild,'menu_build');
|
||||||
CreateMenuItem(ParentMI,itmRunMenuBuildAll,'itmRunMenuBuildAll',lisMenuBuildAll,'menu_buildall');
|
CreateMenuItem(ParentMI,itmRunMenuBuildAll,'itmRunMenuBuildAll',lisMenuBuildAll,'menu_buildall');
|
||||||
|
CreateMenuItem(ParentMI,itmRunMenuQuickCompile,'itmRunMenuQuickCompile',lisMenuQuickCompile);
|
||||||
CreateMenuItem(ParentMI,itmRunMenuAbortBuild,'itmRunMenuAbortBuild',lisMenuAbortBuild);
|
CreateMenuItem(ParentMI,itmRunMenuAbortBuild,'itmRunMenuAbortBuild',lisMenuAbortBuild);
|
||||||
|
|
||||||
CreateMenuSeparatorSection(mnuRun,itmRunnning,'itmRunnning');
|
CreateMenuSeparatorSection(mnuRun,itmRunnning,'itmRunnning');
|
||||||
@ -896,6 +897,7 @@ begin
|
|||||||
// run menu
|
// run menu
|
||||||
itmRunMenuBuild.Command:=GetCommand(ecBuild);
|
itmRunMenuBuild.Command:=GetCommand(ecBuild);
|
||||||
itmRunMenuBuildAll.Command:=GetCommand(ecBuildAll);
|
itmRunMenuBuildAll.Command:=GetCommand(ecBuildAll);
|
||||||
|
itmRunMenuQuickCompile.Command:=GetCommand(ecQuickCompile);
|
||||||
itmRunMenuAbortBuild.Command:=GetCommand(ecAbortBuild);
|
itmRunMenuAbortBuild.Command:=GetCommand(ecAbortBuild);
|
||||||
itmRunMenuRun.Command:=GetCommand(ecRun);
|
itmRunMenuRun.Command:=GetCommand(ecRun);
|
||||||
itmRunMenuPause.Command:=GetCommand(ecPause);
|
itmRunMenuPause.Command:=GetCommand(ecPause);
|
||||||
|
@ -200,21 +200,22 @@ const
|
|||||||
// compile menu
|
// compile menu
|
||||||
ecBuild = ecFirstLazarus + 400;
|
ecBuild = ecFirstLazarus + 400;
|
||||||
ecBuildAll = ecFirstLazarus + 401;
|
ecBuildAll = ecFirstLazarus + 401;
|
||||||
ecAbortBuild = ecFirstLazarus + 402;
|
ecQuickCompile = ecFirstLazarus + 402;
|
||||||
ecRun = ecFirstLazarus + 403;
|
ecAbortBuild = ecFirstLazarus + 403;
|
||||||
ecPause = ecFirstLazarus + 404;
|
ecRun = ecFirstLazarus + 404;
|
||||||
ecStepInto = ecFirstLazarus + 405;
|
ecPause = ecFirstLazarus + 405;
|
||||||
ecStepOver = ecFirstLazarus + 406;
|
ecStepInto = ecFirstLazarus + 406;
|
||||||
ecRunToCursor = ecFirstLazarus + 407;
|
ecStepOver = ecFirstLazarus + 407;
|
||||||
ecStopProgram = ecFirstLazarus + 408;
|
ecRunToCursor = ecFirstLazarus + 408;
|
||||||
ecResetDebugger = ecFirstLazarus + 409;
|
ecStopProgram = ecFirstLazarus + 409;
|
||||||
ecBuildLazarus = ecFirstLazarus + 410;
|
ecResetDebugger = ecFirstLazarus + 410;
|
||||||
ecBuildFile = ecFirstLazarus + 411;
|
ecBuildLazarus = ecFirstLazarus + 411;
|
||||||
ecRunFile = ecFirstLazarus + 412;
|
ecBuildFile = ecFirstLazarus + 412;
|
||||||
ecConfigBuildFile = ecFirstLazarus + 413;
|
ecRunFile = ecFirstLazarus + 413;
|
||||||
ecInspect = ecFirstLazarus + 414;
|
ecConfigBuildFile = ecFirstLazarus + 414;
|
||||||
ecEvaluate = ecFirstLazarus + 415;
|
ecInspect = ecFirstLazarus + 415;
|
||||||
ecAddWatch = ecFirstLazarus + 416;
|
ecEvaluate = ecFirstLazarus + 416;
|
||||||
|
ecAddWatch = ecFirstLazarus + 417;
|
||||||
|
|
||||||
// project menu
|
// project menu
|
||||||
ecNewProject = ecFirstLazarus + 500;
|
ecNewProject = ecFirstLazarus + 500;
|
||||||
|
@ -85,6 +85,9 @@ type
|
|||||||
pbfCompileDependenciesClean,
|
pbfCompileDependenciesClean,
|
||||||
pbfOnlyIfNeeded,
|
pbfOnlyIfNeeded,
|
||||||
pbfDoNotSaveEditorFiles,
|
pbfDoNotSaveEditorFiles,
|
||||||
|
pbfSkipLinking,
|
||||||
|
pbfSkipAssembler,
|
||||||
|
pbfSkipTools,
|
||||||
pbfCreateMakefile
|
pbfCreateMakefile
|
||||||
);
|
);
|
||||||
TProjectBuildFlags = set of TProjectBuildFlag;
|
TProjectBuildFlags = set of TProjectBuildFlag;
|
||||||
|
Loading…
Reference in New Issue
Block a user