mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-16 06:00:32 +01:00
lazbuild: added flag --verbose-pkgsearch
git-svn-id: trunk@49814 -
This commit is contained in:
parent
49c39a1f96
commit
5c6d68e163
@ -350,9 +350,9 @@ begin
|
||||
if (lbfQuiet in Flags) then begin
|
||||
Result:=mrCancel;
|
||||
end else begin
|
||||
Result:=MessageDlg(lisXMLError,
|
||||
Result:=IDEMessageDialog(lisXMLError,
|
||||
Format(lisXMLParserErrorInFileError, [Filename, LineEnding, E.Message]),
|
||||
mtError, [mbCancel], 0);
|
||||
mtError, [mbCancel]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -381,9 +381,9 @@ begin
|
||||
Config.WriteToStream(ms);
|
||||
except
|
||||
on E: Exception do begin
|
||||
Result:=MessageDlg(lisXMLError,
|
||||
Result:=IDEMessageDialog(lisXMLError,
|
||||
Format(lisUnableToWriteXmlStreamToError, [Filename, LineEnding, E.Message]),
|
||||
mtError, [mbCancel], 0);
|
||||
mtError, [mbCancel]);
|
||||
end;
|
||||
end;
|
||||
ms.Position:=0;
|
||||
|
||||
@ -65,6 +65,7 @@ type
|
||||
fCPUOverride: String;
|
||||
FMaxProcessCount: integer;
|
||||
fOSOverride: String;
|
||||
FPkgGraphVerbosity: TPkgVerbosityFlags;
|
||||
FSkipDependencies: boolean;
|
||||
fInitialized: boolean;
|
||||
fInitResult: boolean;
|
||||
@ -165,6 +166,7 @@ type
|
||||
property LazarusDirOverride: String read fLazarusDirOverride write fLazarusDirOverride;
|
||||
property BuildModeOverride: String read FBuildModeOverride write FBuildModeOverride;
|
||||
property MaxProcessCount: integer read FMaxProcessCount write FMaxProcessCount;
|
||||
property PkgGraphVerbosity: TPkgVerbosityFlags read FPkgGraphVerbosity write FPkgGraphVerbosity;
|
||||
end;
|
||||
|
||||
var
|
||||
@ -1191,6 +1193,7 @@ begin
|
||||
PackageGraph:=TLazPackageGraph.Create;
|
||||
PackageGraph.OnAddPackage:=@PackageGraphAddPackage;
|
||||
PackageGraph.OnCheckInterPkgFiles:=@PackageGraphCheckInterPkgFiles;
|
||||
PackageGraph.Verbosity:=PkgGraphVerbosity;
|
||||
end;
|
||||
|
||||
procedure TLazBuildApplication.SetupDialogs;
|
||||
@ -1477,6 +1480,7 @@ begin
|
||||
try
|
||||
LongOptions.Add('quiet');
|
||||
LongOptions.Add('verbose');
|
||||
LongOptions.Add('verbose-pkgsearch');
|
||||
LongOptions.Add('primary-config-path:');
|
||||
LongOptions.Add('pcp:');
|
||||
LongOptions.Add('secondary-config-path:');
|
||||
@ -1505,6 +1509,9 @@ begin
|
||||
exit;
|
||||
end;
|
||||
|
||||
if HasOption('verbose-pkgsearch') then
|
||||
Include(fPkgGraphVerbosity,pvPkgSearch);
|
||||
|
||||
// building IDE
|
||||
if HasOption('build-ide') then begin
|
||||
BuildIDE:=true;
|
||||
@ -1689,6 +1696,8 @@ begin
|
||||
w(space+'Passing quiet two times, will pass -vw-n-h-i-l-d-u-t-p-c-x- to the compiler');
|
||||
writeln('--verbose');
|
||||
w(space+lisBeMoreVerboseCanBeGivenMultipleTimes);
|
||||
writeln('--verbose-pkgsearch');
|
||||
w(space+'Write what package files are searched and found');
|
||||
writeln('');
|
||||
|
||||
writeln('--add-package');
|
||||
|
||||
@ -283,7 +283,7 @@ type
|
||||
procedure ConsistencyCheck;
|
||||
function IsCompatible(Pkg: TLazPackageID): boolean;
|
||||
procedure MakeCompatible(const PkgName: string; const Version: TPkgVersion);
|
||||
function AsString(WithOwner: boolean = false): string;
|
||||
function AsString(WithOwner: boolean = false; WithDefaults: boolean = false): string;
|
||||
function NextUsedByDependency: TPkgDependency;
|
||||
function PrevUsedByDependency: TPkgDependency;
|
||||
function NextRequiresDependency: TPkgDependency;
|
||||
@ -2010,7 +2010,8 @@ begin
|
||||
if MaxVersion.Compare(Version)<0 then MaxVersion.Assign(Version);
|
||||
end;
|
||||
|
||||
function TPkgDependency.AsString(WithOwner: boolean): string;
|
||||
function TPkgDependency.AsString(WithOwner: boolean; WithDefaults: boolean
|
||||
): string;
|
||||
begin
|
||||
if Self=nil then
|
||||
exit('(nil)');
|
||||
@ -2021,6 +2022,17 @@ begin
|
||||
Result:=Result+' (<='+MaxVersion.AsString+')';
|
||||
if WithOwner and (Owner<>nil) then
|
||||
Result:=GetDependencyOwnerAsString(Self)+' uses '+Result;
|
||||
if WithDefaults then
|
||||
begin
|
||||
if DefaultFilename<>'' then begin
|
||||
Result+=', ';
|
||||
if PreferDefaultFilename then
|
||||
Result+='preferred'
|
||||
else
|
||||
Result+='default';
|
||||
Result+='="'+DefaultFilename+'"';
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TPkgDependency.NextUsedByDependency: TPkgDependency;
|
||||
|
||||
@ -195,6 +195,7 @@ var
|
||||
PkgLinks: TPackageLinks = nil; // set by the PkgBoss
|
||||
|
||||
function ComparePackageLinks(Data1, Data2: Pointer): integer;
|
||||
function dbgs(Origin: TPkgLinkOrigin): string; overload;
|
||||
|
||||
|
||||
implementation
|
||||
@ -210,6 +211,15 @@ begin
|
||||
Result:=Link1.Compare(Link2);
|
||||
end;
|
||||
|
||||
function dbgs(Origin: TPkgLinkOrigin): string;
|
||||
begin
|
||||
case Origin of
|
||||
ploGlobal: Result:='Global';
|
||||
ploUser: Result:='User';
|
||||
else Result:='?';
|
||||
end;
|
||||
end;
|
||||
|
||||
function ComparePackageIDAndLink(Key, Data: Pointer): integer;
|
||||
var
|
||||
Link: TPackageLink;
|
||||
|
||||
@ -89,6 +89,10 @@ type
|
||||
puifDoNotConfirm,
|
||||
puifDoNotBuildIDE
|
||||
);
|
||||
TPkgVerbosityFlag = (
|
||||
pvPkgSearch // write debug messsages what packages are searched and found
|
||||
);
|
||||
TPkgVerbosityFlags = set of TPkgVerbosityFlag;
|
||||
|
||||
TPkgUninstallFlags = set of TPkgUninstallFlag;
|
||||
|
||||
@ -177,6 +181,7 @@ type
|
||||
FLazControlsPackage: TLazPackage;
|
||||
FTree: TAVLTree; // sorted tree of TLazPackage
|
||||
FUpdateLock: integer;
|
||||
FVerbosity: TPkgVerbosityFlags;
|
||||
function CreateDefaultPackage: TLazPackage;
|
||||
function GetCount: Integer;
|
||||
function GetPackages(Index: integer): TLazPackage;
|
||||
@ -408,6 +413,7 @@ type
|
||||
property ErrorMsg: string read FErrorMsg write FErrorMsg;
|
||||
property Packages[Index: integer]: TLazPackage read GetPackages; default; // see Count for the number
|
||||
property UpdateLock: integer read FUpdateLock;
|
||||
property Verbosity: TPkgVerbosityFlags read FVerbosity write FVerbosity;
|
||||
|
||||
// base packages
|
||||
property FCLPackage: TLazPackage read FFCLPackage;
|
||||
@ -778,12 +784,16 @@ begin
|
||||
BeginUpdate(false);
|
||||
try
|
||||
AFilename:=PkgLink.GetEffectiveFilename;
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln(['Info: (lazarus) Open dependency: trying "'+Dependency.PackageName+'" in '+dbgs(PkgLink.Origin)+' links: "'+PkgLink.GetEffectiveFilename+'" ...']);
|
||||
//debugln(['TLazPackageGraph.OpenDependencyWithPackageLink AFilename=',AFilename,' ',PkgLink.Origin=ploGlobal]);
|
||||
if not FileExistsUTF8(AFilename) then begin
|
||||
DebugLn('Note: (lazarus) Invalid Package Link: file "'+AFilename+'" does not exist.');
|
||||
PkgLink.LPKFileDateValid:=false;
|
||||
exit(mrCancel);
|
||||
end;
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln(['Info: (lazarus) Open dependency: package file found: "'+AFilename+'". Parsing lpk ...']);
|
||||
try
|
||||
PkgLink.LPKFileDate:=FileDateToDateTimeDef(FileAgeUTF8(AFilename));
|
||||
PkgLink.LPKFileDateValid:=true;
|
||||
@ -798,16 +808,20 @@ begin
|
||||
except
|
||||
on E: Exception do begin
|
||||
DebugLn('Error: (lazarus) unable to read file "'+AFilename+'" ',E.Message);
|
||||
Result:=mrCancel;
|
||||
exit;
|
||||
exit(mrCancel);
|
||||
end;
|
||||
end;
|
||||
if not NewPackage.MakeSense then begin
|
||||
DebugLn('Error: (lazarus) invalid package file "'+AFilename+'".');
|
||||
exit(mrCancel);
|
||||
end;
|
||||
if SysUtils.CompareText(PkgLink.Name,NewPackage.Name)<>0 then exit;
|
||||
if SysUtils.CompareText(PkgLink.Name,NewPackage.Name)<>0 then begin
|
||||
DebugLn('Error: (lazarus) package file "'+AFilename+'" and name "'+NewPackage.Name+'" mismatch.');
|
||||
exit(mrCancel);
|
||||
end;
|
||||
// ok
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln('Info: (lazarus) Open dependency ['+Dependency.PackageName+']: Success: "'+NewPackage.Filename+'"');
|
||||
Result:=mrOk;
|
||||
Dependency.RequiredPackage:=NewPackage;
|
||||
Dependency.LoadPackageResult:=lprSuccess;
|
||||
@ -1922,6 +1936,8 @@ var
|
||||
OldEditor: TBasePackageEditor;
|
||||
i: Integer;
|
||||
begin
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln(['Info: (lazarus) replacing package "'+OldPackage.Filename+'" with "'+NewPackage.Filename+'"']);
|
||||
BeginUpdate(true);
|
||||
// save flags
|
||||
OldInstalled:=OldPackage.Installed;
|
||||
@ -5319,6 +5335,8 @@ var
|
||||
i: Integer;
|
||||
begin
|
||||
if Dependency.LoadPackageResult=lprUndefined then begin
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln('Info: (lazarus) Open dependency '+Dependency.AsString(true,true)+' ...');
|
||||
//debugln(['TLazPackageGraph.OpenDependency ',Dependency.PackageName,' ',Dependency.DefaultFilename,' Prefer=',Dependency.PreferDefaultFilename]);
|
||||
BeginUpdate(false);
|
||||
// search compatible package in opened packages
|
||||
@ -5328,6 +5346,8 @@ begin
|
||||
APackage:=TLazPackage(ANode.Data);
|
||||
Dependency.RequiredPackage:=APackage;
|
||||
Dependency.LoadPackageResult:=lprSuccess;
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln(['Info: (lazarus) Open dependency ['+Dependency.PackageName+']: Success: was already loaded']);
|
||||
end;
|
||||
// load preferred package
|
||||
if (Dependency.DefaultFilename<>'') and Dependency.PreferDefaultFilename
|
||||
@ -5339,6 +5359,8 @@ begin
|
||||
or ((Dependency.RequiredPackage.FindUsedByDepPrefer(Dependency)=nil)
|
||||
and (CompareFilenames(PreferredFilename,Dependency.RequiredPackage.Filename)<>0)))
|
||||
then begin
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln(['Info: (lazarus) Open dependency ['+Dependency.PackageName+']: trying resolved preferred filename: "'+PreferredFilename+'" ...']);
|
||||
OpenFile(PreferredFilename);
|
||||
end;
|
||||
end;
|
||||
@ -5376,6 +5398,8 @@ begin
|
||||
and (Dependency.DefaultFilename<>'') then begin
|
||||
AFilename:=Dependency.FindDefaultFilename;
|
||||
if AFilename<>'' then begin
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln(['Info: (lazarus) Open dependency ['+Dependency.PackageName+']: trying resolved default filename: "'+PreferredFilename+'" ...']);
|
||||
OpenFile(AFilename);
|
||||
end;
|
||||
end;
|
||||
@ -5384,6 +5408,8 @@ begin
|
||||
if Dependency.LoadPackageResult=lprNotFound then begin
|
||||
CurDir:=GetDependencyOwnerDirectory(Dependency);
|
||||
if (CurDir<>'') then begin
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln(['Info: (lazarus) Open dependency ['+Dependency.PackageName+']: trying in owner directory "'+AppendPathDelim(CurDir)+'" ...']);
|
||||
AFilename:=FindDiskFileCaseInsensitive(
|
||||
AppendPathDelim(CurDir)+Dependency.PackageName+'.lpk');
|
||||
if FileExistsCached(AFilename) then begin
|
||||
@ -5399,32 +5425,33 @@ begin
|
||||
if APackage.ProvidesPackage(Dependency.PackageName) then begin
|
||||
Dependency.RequiredPackage:=APackage;
|
||||
Dependency.LoadPackageResult:=lprSuccess;
|
||||
if pvPkgSearch in Verbosity then
|
||||
debugln(['Info: (lazarus) Open dependency ['+Dependency.PackageName+']: Success. Package "'+APackage.IDAsString+'" provides '+Dependency.AsString]);
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end else begin
|
||||
// there is already a package with this name, but wrong version open
|
||||
// -> unable to load this dependency due to conflict
|
||||
debugln('Error: (lazarus) [TLazPackageGraph.OpenDependency}:');
|
||||
debugln('Error: (lazarus) Open dependency found incompatible package: searched for '+Dependency.AsString(true)+', but found '+APackage.IDAsString);
|
||||
if IsStaticBasePackage(APackage.Name) then
|
||||
begin
|
||||
debugln([' LazarusDir="',EnvironmentOptions.GetParsedLazarusDirectory,'"']);
|
||||
debugln(['Note: (lazarus) LazarusDir="',EnvironmentOptions.GetParsedLazarusDirectory,'"']);
|
||||
// wrong base package
|
||||
if (EnvironmentOptions.LazarusDirectory='')
|
||||
or (not DirPathExistsCached(EnvironmentOptions.GetParsedLazarusDirectory))
|
||||
then begin
|
||||
// the lazarus directory is not set
|
||||
debugln([' The Lazarus directory is not set. Pass parameter --lazarusdir.']);
|
||||
debugln(['Note: (lazarus) The Lazarus directory is not set. Pass parameter --lazarusdir.']);
|
||||
end else if not DirPathExistsCached(PkgLinks.GetGlobalLinkDirectory)
|
||||
then begin
|
||||
debugln([' The lpl directory is missing. Check that the Lazarus (--lazarusdir) directory is correct.']);
|
||||
debugln(['Note: (lazarus) The lpl directory is missing. Check that the Lazarus (--lazarusdir) directory is correct.']);
|
||||
end;
|
||||
end;
|
||||
if APackage.Missing then
|
||||
begin
|
||||
debugln([' The lpk (',APackage.Filename,') is missing for dependency=',Dependency.AsString])
|
||||
end else begin
|
||||
debugln([' Another package with wrong version is already open: Dependency=',Dependency.AsString,' Pkg=',APackage.IDAsString])
|
||||
debugln(['Note: (lazarus) The lpk (',APackage.Filename,') is missing for dependency=',Dependency.AsString])
|
||||
end;
|
||||
Dependency.LoadPackageResult:=lprLoadError;
|
||||
end;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user