mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-20 20:48:21 +02:00
lazbuild: fixed saving lpk history
git-svn-id: trunk@36199 -
This commit is contained in:
parent
b6b63e0fd4
commit
d79ff1435a
@ -127,7 +127,8 @@ type
|
|||||||
private
|
private
|
||||||
FDependencyOwnerGetPkgFilename: TDependencyOwnerGetPkgFilename;
|
FDependencyOwnerGetPkgFilename: TDependencyOwnerGetPkgFilename;
|
||||||
FGlobalLinks: TAvgLvlTree; // tree of global TPackageLink sorted for ID
|
FGlobalLinks: TAvgLvlTree; // tree of global TPackageLink sorted for ID
|
||||||
FModified: boolean;
|
FChangeStamp: integer;
|
||||||
|
FSavedChangeStamp: integer;
|
||||||
FUserLinksSortID: TAvgLvlTree; // tree of user TPackageLink sorted for ID
|
FUserLinksSortID: TAvgLvlTree; // tree of user TPackageLink sorted for ID
|
||||||
FUserLinksSortFile: TAvgLvlTree; // tree of user TPackageLink sorted for
|
FUserLinksSortFile: TAvgLvlTree; // tree of user TPackageLink sorted for
|
||||||
// Filename and FileDate
|
// Filename and FileDate
|
||||||
@ -141,6 +142,7 @@ type
|
|||||||
Dependency: TPkgDependency; IgnoreFiles: TFilenameToStringTree): TPackageLink;
|
Dependency: TPkgDependency; IgnoreFiles: TFilenameToStringTree): TPackageLink;
|
||||||
function FindLinkWithPackageIDInTree(LinkTree: TAvgLvlTree;
|
function FindLinkWithPackageIDInTree(LinkTree: TAvgLvlTree;
|
||||||
APackageID: TLazPackageID): TPackageLink;
|
APackageID: TLazPackageID): TPackageLink;
|
||||||
|
function GetModified: boolean;
|
||||||
procedure IteratePackagesInTree(MustExist: boolean; LinkTree: TAvgLvlTree;
|
procedure IteratePackagesInTree(MustExist: boolean; LinkTree: TAvgLvlTree;
|
||||||
Event: TIteratePackagesEvent);
|
Event: TIteratePackagesEvent);
|
||||||
procedure SetModified(const AValue: boolean);
|
procedure SetModified(const AValue: boolean);
|
||||||
@ -172,8 +174,10 @@ type
|
|||||||
function AddUserLink(const PkgFilename, PkgName: string): TPackageLink;// do not this use if package is open in IDE
|
function AddUserLink(const PkgFilename, PkgName: string): TPackageLink;// do not this use if package is open in IDE
|
||||||
procedure RemoveUserLink(Link: TPackageLink);
|
procedure RemoveUserLink(Link: TPackageLink);
|
||||||
procedure RemoveUserLinks(APackageID: TLazPackageID);
|
procedure RemoveUserLinks(APackageID: TLazPackageID);
|
||||||
|
procedure IncreaseChangeStamp;
|
||||||
public
|
public
|
||||||
property Modified: boolean read FModified write SetModified;
|
property Modified: boolean read GetModified write SetModified;
|
||||||
|
property ChangeStamp: integer read FChangeStamp;
|
||||||
property DependencyOwnerGetPkgFilename: TDependencyOwnerGetPkgFilename
|
property DependencyOwnerGetPkgFilename: TDependencyOwnerGetPkgFilename
|
||||||
read FDependencyOwnerGetPkgFilename
|
read FDependencyOwnerGetPkgFilename
|
||||||
write FDependencyOwnerGetPkgFilename;
|
write FDependencyOwnerGetPkgFilename;
|
||||||
@ -327,6 +331,8 @@ begin
|
|||||||
FGlobalLinks:=TAvgLvlTree.Create(@ComparePackageLinks);
|
FGlobalLinks:=TAvgLvlTree.Create(@ComparePackageLinks);
|
||||||
FUserLinksSortID:=TAvgLvlTree.Create(@ComparePackageLinks);
|
FUserLinksSortID:=TAvgLvlTree.Create(@ComparePackageLinks);
|
||||||
FUserLinksSortFile:=TAvgLvlTree.Create(@CompareLinksForFilenameAndFileAge);
|
FUserLinksSortFile:=TAvgLvlTree.Create(@CompareLinksForFilenameAndFileAge);
|
||||||
|
FSavedChangeStamp:=CTInvalidChangeStamp;
|
||||||
|
FChangeStamp:=CTInvalidChangeStamp;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TPackageLinks.Destroy;
|
destructor TPackageLinks.Destroy;
|
||||||
@ -504,8 +510,8 @@ begin
|
|||||||
|
|
||||||
// check if file has changed
|
// check if file has changed
|
||||||
ConfigFilename:=GetUserLinkFile;
|
ConfigFilename:=GetUserLinkFile;
|
||||||
if UserLinkLoadTimeValid and FileExistsUTF8(ConfigFilename)
|
if UserLinkLoadTimeValid and FileExistsCached(ConfigFilename)
|
||||||
and (FileAgeUTF8(ConfigFilename)=UserLinkLoadTime) then
|
and (FileAgeCached(ConfigFilename)=UserLinkLoadTime) then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
// copy system default if needed
|
// copy system default if needed
|
||||||
@ -513,6 +519,7 @@ begin
|
|||||||
|
|
||||||
FUserLinksSortID.FreeAndClear;
|
FUserLinksSortID.FreeAndClear;
|
||||||
FUserLinksSortFile.Clear;
|
FUserLinksSortFile.Clear;
|
||||||
|
IncreaseChangeStamp;
|
||||||
FileVersion:=PkgLinksFileVersion;
|
FileVersion:=PkgLinksFileVersion;
|
||||||
XMLConfig:=nil;
|
XMLConfig:=nil;
|
||||||
try
|
try
|
||||||
@ -790,6 +797,11 @@ begin
|
|||||||
Result:=nil;
|
Result:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TPackageLinks.GetModified: boolean;
|
||||||
|
begin
|
||||||
|
Result:=FSavedChangeStamp<>FChangeStamp;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TPackageLinks.IteratePackagesInTree(MustExist: boolean;
|
procedure TPackageLinks.IteratePackagesInTree(MustExist: boolean;
|
||||||
LinkTree: TAvgLvlTree; Event: TIteratePackagesEvent);
|
LinkTree: TAvgLvlTree; Event: TIteratePackagesEvent);
|
||||||
var
|
var
|
||||||
@ -810,8 +822,11 @@ end;
|
|||||||
|
|
||||||
procedure TPackageLinks.SetModified(const AValue: boolean);
|
procedure TPackageLinks.SetModified(const AValue: boolean);
|
||||||
begin
|
begin
|
||||||
if FModified=AValue then exit;
|
if Modified=AValue then exit;
|
||||||
FModified:=AValue;
|
if not AValue then
|
||||||
|
FSavedChangeStamp:=FChangeStamp
|
||||||
|
else
|
||||||
|
IncreaseChangeStamp;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPackageLinks.FindLinkWithPkgName(const PkgName: string): TPackageLink;
|
function TPackageLinks.FindLinkWithPkgName(const PkgName: string): TPackageLink;
|
||||||
@ -882,7 +897,7 @@ begin
|
|||||||
if NewLink.MakeSense then begin
|
if NewLink.MakeSense then begin
|
||||||
FUserLinksSortID.Add(NewLink);
|
FUserLinksSortID.Add(NewLink);
|
||||||
FUserLinksSortFile.Add(NewLink);
|
FUserLinksSortFile.Add(NewLink);
|
||||||
Modified:=true;
|
IncreaseChangeStamp;
|
||||||
end else begin
|
end else begin
|
||||||
NewLink.Release;
|
NewLink.Release;
|
||||||
NewLink:=nil;
|
NewLink:=nil;
|
||||||
@ -933,7 +948,7 @@ begin
|
|||||||
if NewLink.MakeSense then begin
|
if NewLink.MakeSense then begin
|
||||||
FUserLinksSortID.Add(NewLink);
|
FUserLinksSortID.Add(NewLink);
|
||||||
FUserLinksSortFile.Add(NewLink);
|
FUserLinksSortFile.Add(NewLink);
|
||||||
Modified:=true;
|
IncreaseChangeStamp;
|
||||||
end else begin
|
end else begin
|
||||||
NewLink.Release;
|
NewLink.Release;
|
||||||
NewLink:=nil;
|
NewLink:=nil;
|
||||||
@ -960,7 +975,7 @@ begin
|
|||||||
FUserLinksSortID.RemovePointer(Link);
|
FUserLinksSortID.RemovePointer(Link);
|
||||||
FUserLinksSortFile.RemovePointer(Link);
|
FUserLinksSortFile.RemovePointer(Link);
|
||||||
Link.Release;
|
Link.Release;
|
||||||
Modified:=true;
|
IncreaseChangeStamp;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
@ -982,13 +997,18 @@ begin
|
|||||||
FUserLinksSortID.Delete(ANode);
|
FUserLinksSortID.Delete(ANode);
|
||||||
FUserLinksSortFile.RemovePointer(OldLink);
|
FUserLinksSortFile.RemovePointer(OldLink);
|
||||||
OldLink.Release;
|
OldLink.Release;
|
||||||
Modified:=true;
|
IncreaseChangeStamp;
|
||||||
until false;
|
until false;
|
||||||
finally
|
finally
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TPackageLinks.IncreaseChangeStamp;
|
||||||
|
begin
|
||||||
|
CTIncreaseChangeStamp(FChangeStamp);
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
PkgLinks:=nil;
|
PkgLinks:=nil;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user