* Generate manifest-files for each package while archiving multiple packages

git-svn-id: trunk@31433 -
This commit is contained in:
joost 2015-08-27 18:43:45 +00:00
parent 038c647ed2
commit 621c9c357c

View File

@ -1205,7 +1205,7 @@ Type
Procedure UnInstall(Packages : TPackages);
Procedure ZipInstall(Packages : TPackages);
Procedure Archive(Packages : TPackages);
procedure Manifest(Packages: TPackages);
procedure Manifest(Packages: TPackages; Package: TPackage);
procedure PkgList(Packages: TPackages);
Procedure Clean(Packages : TPackages; AllTargets: boolean);
@ -4866,8 +4866,6 @@ end;
procedure TCustomInstaller.Archive;
begin
// Force generation of manifest.xml, this is required for the repository
BuildEngine.Manifest(Packages);
NotifyEventCollection.CallEvents(neaBeforeArchive, self);
BuildEngine.Archive(Packages);
NotifyEventCollection.CallEvents(neaAfterArchive, self);
@ -4877,7 +4875,7 @@ end;
procedure TCustomInstaller.Manifest;
begin
NotifyEventCollection.CallEvents(neaBeforeManifest, self);
BuildEngine.Manifest(Packages);
BuildEngine.Manifest(Packages, nil);
NotifyEventCollection.CallEvents(neaAfterManifest, self);
end;
@ -7558,17 +7556,20 @@ begin
For I:=0 to Packages.Count-1 do
begin
P:=Packages.PackageItems[i];
// Force generation of manifest.xml, this is required for the repository
Manifest(nil, P);
Archive(P);
end;
NotifyEventCollection.CallEvents(neaAfterArchive, Self);
end;
procedure TBuildEngine.Manifest(Packages: TPackages);
procedure TBuildEngine.Manifest(Packages: TPackages; Package: TPackage);
Var
L : TStrings;
I : Integer;
P : TPackage;
FN: string;
begin
NotifyEventCollection.CallEvents(neaBeforeManifest, Self);
Log(vlDebug, SDbgBuildEngineGenerateManifests);
@ -7578,14 +7579,25 @@ begin
Log(vlDebug, Format(SDbgGenerating, [ManifestFile]));
L.Add('<?xml version="1.0"?>');
L.Add('<packages>');
For I:=0 to Packages.Count-1 do
if assigned(Packages) then
begin
P:=Packages.PackageItems[i];
Log(vlInfo, Format(SInfoManifestPackage,[P.Name]));
P.GetManifest(L);
For I:=0 to Packages.Count-1 do
begin
P:=Packages.PackageItems[i];
Log(vlInfo, Format(SInfoManifestPackage,[P.Name]));
P.GetManifest(L);
end
end;
if assigned(Package) then
begin
Log(vlInfo, Format(SInfoManifestPackage,[Package.Name]));
Package.GetManifest(L);
end;
L.Add('</packages>');
L.SaveToFile(ManifestFile);
FN := ManifestFile;
if assigned(Package) then
FN := FixPath(Package.Directory, True)+FN;
L.SaveToFile(FN);
Finally
L.Free;
end;