Packager: Show a dialog when Fppkg initialization fails and continue normally. Issue

git-svn-id: trunk@59977 -
This commit is contained in:
joost 2019-01-02 23:34:30 +00:00
parent ce79247514
commit 2a86e8321c
2 changed files with 35 additions and 10 deletions

View File

@ -1147,6 +1147,10 @@ resourcestring
lisSaveAllChecked = 'Save All Checked';
lisActivate = 'Activate';
lisActivateSelected = 'Activate Selected';
lisFppkgInitializeFailedCaption = 'Failed to initialize Fppkg';
lisFppkgInitializeFailed =
'An error occured during the initialization of Fppkg: %s.' + sLineBreak +
'Check your Fppkg configuration and restart Lazarus to be able to use Fppkg''s functionality.';
// hints
lisHintSaveAll = 'Save all';

View File

@ -10,7 +10,10 @@ uses
{$IFNDEF VER3_0}
pkgFppkg,
{$ENDIF VER3_0}
fprepos;
fprepos,
Dialogs,
IDEDialogs,
LazarusIDEStrConsts;
type
@ -54,18 +57,23 @@ var
begin
FPpkg := TpkgFPpkg.Create(nil);
try
FPpkg.InitializeGlobalOptions('');
FPpkg.InitializeCompilerOptions;
try
FPpkg.InitializeGlobalOptions('');
FPpkg.InitializeCompilerOptions;
FPpkg.CompilerOptions.CheckCompilerValues;
FPpkg.FpmakeCompilerOptions.CheckCompilerValues;
FPpkg.CompilerOptions.CheckCompilerValues;
FPpkg.FpmakeCompilerOptions.CheckCompilerValues;
FPpkg.LoadLocalAvailableMirrors;
FPpkg.LoadLocalAvailableMirrors;
FPpkg.ScanPackages;
FPpkg.ScanPackages;
FFPpkg := FPpkg;
FPpkg := nil;
FFPpkg := FPpkg;
FPpkg := nil;
except
on E: Exception do
IDEMessageDialog(lisFppkgInitializeFailed, Format(lisFppkgInitializeFailed, [E.Message]), mtWarning, [mbOK]);
end;
finally
FPpkg.Free;
end;
@ -128,6 +136,8 @@ var
{$ENDIF VER3_0}
begin
{$IFNDEF VER3_0}
if not Assigned(FFPpkg) then
Exit;
for I := 0 to FFPpkg.RepositoryList.Count -1 do
begin
Repository := FFPpkg.RepositoryList.Items[I] as TFPRepository;
@ -150,6 +160,11 @@ var
{$ENDIF VER3_0}
begin
{$IFNDEF VER3_0}
if not Assigned(FFPpkg) then
begin
Result := '';
Exit;
end;
FppkgPackage := FFPpkg.FindPackage(PackageName, pkgpkInstalled);
if Assigned(FppkgPackage) then
begin
@ -197,6 +212,12 @@ begin
{$ENDIF FPC_FULLVERSION>30100}
{$IF FPC_FULLVERSION>30100}
if not Assigned(FFPpkg) then
begin
Result := [];
Exit;
end;
FppkgPackage := FFPpkg.FindPackage(PackageName, pkgpkInstalled);
if Assigned(FppkgPackage) then
begin
@ -230,7 +251,7 @@ end;
function TFppkgHelper.IsProperyConfigured: Boolean;
begin
if FIsProperlyConfigured=fpcUnknown then
if Assigned(FFPpkg) and (FIsProperlyConfigured=fpcUnknown) then
begin
FIsProperlyConfigured := fpcYes;
if not HasPackage('rtl') then