mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 23:19:24 +02:00
* Added ability to add targets to a packagevariant
git-svn-id: trunk@22361 -
This commit is contained in:
parent
9ebf2aa984
commit
a74b6e8573
@ -209,6 +209,7 @@ Const
|
||||
AllMessages = [vlError,vlWarning,vlCommand,vlInfo];
|
||||
|
||||
Type
|
||||
TTargets = Class;
|
||||
{ TNamedItem }
|
||||
|
||||
TNamedItem = Class(TCollectionItem)
|
||||
@ -437,10 +438,12 @@ Type
|
||||
TPackageVariant = class(TNamedItem)
|
||||
private
|
||||
FOptions: TStrings;
|
||||
FTargets: TTargets;
|
||||
public
|
||||
constructor Create(ACollection: TCollection); override;
|
||||
destructor Destroy; override;
|
||||
property Options: TStrings read FOptions;
|
||||
property Targets: TTargets read FTargets;
|
||||
end;
|
||||
|
||||
{ TPackageVariants }
|
||||
@ -534,6 +537,7 @@ Type
|
||||
Public
|
||||
Constructor Create(ACollection : TCollection); override;
|
||||
Destructor Destroy; override;
|
||||
procedure AssignTo(Dest: TPersistent); override;
|
||||
Function GetOutputFileName (AOs : TOS) : String; Virtual;
|
||||
Function HaveOptions : Boolean;
|
||||
procedure SetName(const AValue: String);override;
|
||||
@ -2184,12 +2188,14 @@ end;
|
||||
constructor TPackageVariant.Create(ACollection: TCollection);
|
||||
begin
|
||||
inherited Create(ACollection);
|
||||
FTargets := TTargets.Create(TTarget);
|
||||
FOptions := TStringList.Create;
|
||||
end;
|
||||
|
||||
destructor TPackageVariant.Destroy;
|
||||
begin
|
||||
FOptions.Free;
|
||||
FTargets.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
@ -2231,10 +2237,7 @@ begin
|
||||
result := self.add as TPackageVariant;
|
||||
result.Name := AName;
|
||||
if FDefaultPackageVariantName='' then
|
||||
begin
|
||||
FDefaultPackageVariantName:=AName;
|
||||
FActivePackageVariantName:=AName;
|
||||
end;
|
||||
end;
|
||||
|
||||
{$endif HAS_UNIT_PROCESS}
|
||||
@ -3143,17 +3146,23 @@ end;
|
||||
|
||||
procedure TPackage.SetDefaultPackageVariant;
|
||||
var
|
||||
i: integer;
|
||||
i,j: integer;
|
||||
PackageVariants: TPackageVariants;
|
||||
begin
|
||||
for i := 0 to FPackageVariants.Count-1 do
|
||||
begin
|
||||
PackageVariants := TPackageVariants(FPackageVariants.Items[i]);
|
||||
if Installer.FPackageVariantSettings.Values[PackageVariants.Name]<>'' then
|
||||
PackageVariants.ActivePackageVariantName:= Installer.FPackageVariantSettings.Values[PackageVariants.Name];
|
||||
PackageVariants.ActivePackageVariantName:= Installer.FPackageVariantSettings.Values[PackageVariants.Name]
|
||||
else
|
||||
PackageVariants.ActivePackageVariantName:= PackageVariants.DefaultPackageVariantName;
|
||||
Dictionary.AddVariable(PackageVariants.Name,PackageVariants.ActivePackageVariantName);
|
||||
SetUnitsOutputDir(FUnitsOutputDir+'$('+PackageVariants.name+')');
|
||||
SetPackageUnitInstallDir(FPackageUnitInstallDir+'$('+PackageVariants.Name+')');
|
||||
// Do not add targets f the package is inerited
|
||||
if PackageVariants.GetOwner=Self then
|
||||
for j := 0 to PackageVariants.ActivePackageVariant.Targets.count -1 do
|
||||
targets.add.assign(PackageVariants.ActivePackageVariant.Targets.items[j]);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -6616,6 +6625,42 @@ begin
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TTarget.AssignTo(Dest: TPersistent);
|
||||
var
|
||||
DestTarget: TTarget;
|
||||
begin
|
||||
if Dest is TTarget then
|
||||
begin
|
||||
DestTarget := TTarget(Dest);
|
||||
DestTarget.Dependencies.Assign(Dependencies);
|
||||
DestTarget.Commands.Assign(Commands);
|
||||
DestTarget.FTargetState := FTargetState;
|
||||
DestTarget.TargetType := TargetType;
|
||||
DestTarget.CPUs := CPUs;
|
||||
DestTarget.OSes := OSes;
|
||||
DestTarget.Mode := Mode;
|
||||
DestTarget.Options := Options;
|
||||
DestTarget.Name := Name;
|
||||
DestTarget.Extension:= Extension;
|
||||
DestTarget.FPCTarget := FPCTarget;
|
||||
DestTarget.FileType := FileType;
|
||||
DestTarget.Directory := Directory;
|
||||
DestTarget.ResourceStrings := ResourceStrings;
|
||||
DestTarget.Install := Install;
|
||||
DestTarget.FTargetSourceFileName := fTargetSourceFileName;
|
||||
DestTarget.ObjectPath.Assign(ObjectPath);
|
||||
DestTarget.UnitPath.Assign(UnitPath);
|
||||
DestTarget.IncludePath.Assign(IncludePath);
|
||||
DestTarget.FXML := FXML;
|
||||
DestTarget.AfterCompile := AfterCompile;
|
||||
DestTarget.BeforeCompile := BeforeCompile;
|
||||
DestTarget.BeforeClean := BeforeCompile;
|
||||
DestTarget.AfterClean := AfterClean;
|
||||
end
|
||||
else
|
||||
inherited AssignTo(Dest);
|
||||
end;
|
||||
|
||||
function TTarget.GetOptions: TStrings;
|
||||
begin
|
||||
If Foptions=Nil then
|
||||
|
Loading…
Reference in New Issue
Block a user