mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-02 13:20:26 +02:00
IDE: Increment build number only once when building many modes at one go. Patch from Sandro Cumerlato.
git-svn-id: trunk@48687 -
This commit is contained in:
parent
00c7ba3737
commit
5341fd0bed
@ -247,7 +247,8 @@ type
|
||||
function DoPublishProject(Flags: TSaveFlags;
|
||||
ShowDialog: boolean): TModalResult; virtual; abstract;
|
||||
function DoBuildProject(const AReason: TCompileReason;
|
||||
Flags: TProjectBuildFlags): TModalResult; virtual; abstract;
|
||||
Flags: TProjectBuildFlags;
|
||||
FinalizeResources: boolean): TModalResult; virtual; abstract;
|
||||
function GetProjectFileForProjectEditor(AEditor: TSourceEditorInterface): TLazProjectFile; virtual; abstract;
|
||||
function DoCallProjectChangedHandler(HandlerType: TLazarusIDEHandlerType;
|
||||
AProject: TLazProject): TModalResult;
|
||||
|
@ -775,7 +775,8 @@ type
|
||||
function DoWarnAmbiguousFiles: TModalResult;
|
||||
function DoSaveForBuild(AReason: TCompileReason): TModalResult; override;
|
||||
function DoBuildProject(const AReason: TCompileReason;
|
||||
Flags: TProjectBuildFlags): TModalResult; override;
|
||||
Flags: TProjectBuildFlags;
|
||||
FinalizeResources: boolean = True): TModalResult; override;
|
||||
function UpdateProjectPOFile(AProject: TProject): TModalResult;
|
||||
function DoAbortBuild(Interactive: boolean): TModalResult;
|
||||
procedure DoCompile;
|
||||
@ -6487,7 +6488,7 @@ begin
|
||||
end;
|
||||
|
||||
function TMainIDE.DoBuildProject(const AReason: TCompileReason;
|
||||
Flags: TProjectBuildFlags): TModalResult;
|
||||
Flags: TProjectBuildFlags; FinalizeResources: boolean): TModalResult;
|
||||
var
|
||||
SrcFilename: string;
|
||||
ToolBefore: TProjectCompilationToolOptions;
|
||||
@ -6784,7 +6785,8 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
Project1.ProjResources.DoAfterBuild(AReason, Project1.IsVirtual);
|
||||
if FinalizeResources then
|
||||
Project1.ProjResources.DoAfterBuild(AReason, Project1.IsVirtual);
|
||||
finally
|
||||
// check sources
|
||||
DoCheckFilesOnDisk;
|
||||
|
@ -4021,13 +4021,13 @@ function TLazSourceFileManager.BuildManyModes(): Boolean;
|
||||
var
|
||||
ModeCnt: Integer;
|
||||
|
||||
function BuildOneMode: Boolean;
|
||||
function BuildOneMode(LastMode: boolean): Boolean;
|
||||
begin
|
||||
Inc(ModeCnt);
|
||||
DebugLn('');
|
||||
DebugLn(Format('Building mode %d: %s ...', [ModeCnt, Project1.ActiveBuildMode.Identifier]));
|
||||
DebugLn('');
|
||||
Result := MainIDE.DoBuildProject(crBuild,[]) = mrOK;
|
||||
Result := MainIDE.DoBuildProject(crBuild, [], LastMode) = mrOK;
|
||||
end;
|
||||
|
||||
var
|
||||
@ -4035,6 +4035,7 @@ var
|
||||
md, ActiveMode: TProjectBuildMode;
|
||||
BuildActiveMode: Boolean;
|
||||
i: Integer;
|
||||
LastMode: boolean;
|
||||
begin
|
||||
Result := False;
|
||||
ModeCnt := 0;
|
||||
@ -4057,12 +4058,16 @@ begin
|
||||
end;
|
||||
// Build first the active mode so we don't have to switch many times.
|
||||
if BuildActiveMode then
|
||||
if not BuildOneMode then Exit;
|
||||
begin
|
||||
LastMode := (ModeList.Count=0);
|
||||
if not BuildOneMode(LastMode) then Exit;
|
||||
end;
|
||||
// Build rest of the modes.
|
||||
for i := 0 to ModeList.Count-1 do
|
||||
begin
|
||||
LastMode := (i=(ModeList.Count-1));
|
||||
Project1.ActiveBuildMode := TProjectBuildMode(ModeList[i]);
|
||||
if not BuildOneMode then Exit;
|
||||
if not BuildOneMode(LastMode) then Exit;
|
||||
end;
|
||||
// Switch back to original mode.
|
||||
Project1.ActiveBuildMode := ActiveMode;
|
||||
|
Loading…
Reference in New Issue
Block a user