diff --git a/ide/buildlazdialog.pas b/ide/buildlazdialog.pas index e27660e9d4..f2dc3476dc 100644 --- a/ide/buildlazdialog.pas +++ b/ide/buildlazdialog.pas @@ -154,6 +154,7 @@ type destructor Destroy; override; procedure CopyProfileToUI(AProfile: TBuildLazarusProfile); procedure CopyUIToProfile(AProfile: TBuildLazarusProfile); + procedure DisableCompilation; procedure UpdateProfileNamesUI; end; @@ -196,7 +197,8 @@ type function PrepareTargetDir(Flags: TBuildLazarusFlags): TModalResult; public constructor Create; - function ShowConfigureBuildLazarusDlg(AProfiles: TBuildLazarusProfiles): TModalResult; + function ShowConfigBuildLazDlg(AProfiles: TBuildLazarusProfiles; + ADisableCompilation: Boolean): TModalResult; function MakeLazarus(Profile: TBuildLazarusProfile; Flags: TBuildLazarusFlags): TModalResult; function IsWriteProtected(Profile: TBuildLazarusProfile): Boolean; function SaveIDEMakeOptions(Profile: TBuildLazarusProfile; Flags: TBuildLazarusFlags): TModalResult; @@ -235,7 +237,8 @@ begin fMacros:=GlobalMacroList; end; -function TLazarusBuilder.ShowConfigureBuildLazarusDlg(AProfiles: TBuildLazarusProfiles): TModalResult; +function TLazarusBuilder.ShowConfigBuildLazDlg(AProfiles: TBuildLazarusProfiles; + ADisableCompilation: Boolean): TModalResult; // mrOk=save // mrYes=save and compile // mrAll=save and compile all selected profiles @@ -247,6 +250,8 @@ begin try ConfigBuildLazDlg.fBuilder := Self; ConfigBuildLazDlg.fProfiles.Assign(AProfiles); // Copy profiles to dialog. + if ADisableCompilation then + ConfigBuildLazDlg.DisableCompilation; Result := ConfigBuildLazDlg.ShowModal; if Result in [mrOk,mrYes,mrAll] then AProfiles.Assign(ConfigBuildLazDlg.fProfiles); // Copy profiles back from dialog. @@ -1228,6 +1233,12 @@ begin AProfile.Defines.Add(DefinesListBox.Items[i]); end; +procedure TConfigureBuildLazarusDlg.DisableCompilation; +begin + CompileButton.Enabled:=False; + CompileAdvancedButton.Enabled:=False; +end; + procedure TConfigureBuildLazarusDlg.UpdateProfileNamesUI; var i: Integer; diff --git a/ide/main.pp b/ide/main.pp index 5a2606fe6f..0211596325 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -4865,7 +4865,8 @@ begin fBuilder:=TLazarusBuilder.Create; // Will be freed in the very end. MainBuildBoss.SetBuildTargetIDE; try - DlgResult:=fBuilder.ShowConfigureBuildLazarusDlg(MiscellaneousOptions.BuildLazProfiles); + DlgResult:=fBuilder.ShowConfigBuildLazDlg(MiscellaneousOptions.BuildLazProfiles, + ToolStatus in [itDebugger,itBuilder]); finally MainBuildBoss.SetBuildTargetProject1(true); end;