mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-03 08:41:44 +02:00
IDE: adding dependency to LCLBase instead uses LCL, fixed adding min version requirement
git-svn-id: trunk@31286 -
This commit is contained in:
parent
982e95406b
commit
087c6c7a2f
@ -3441,9 +3441,10 @@ begin
|
|||||||
with Result do begin
|
with Result do begin
|
||||||
Owner:=NewOwner;
|
Owner:=NewOwner;
|
||||||
PackageName:=Self.Name;
|
PackageName:=Self.Name;
|
||||||
if WithMinVersion then
|
if WithMinVersion then begin
|
||||||
MinVersion.Assign(Version);
|
MinVersion.Assign(Version);
|
||||||
Flags:=[pdfMinVersion];
|
Flags:=[pdfMinVersion];
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -239,7 +239,7 @@ type
|
|||||||
function GetPackageCount: integer; override;
|
function GetPackageCount: integer; override;
|
||||||
function GetPackages(Index: integer): TIDEPackage; override;
|
function GetPackages(Index: integer): TIDEPackage; override;
|
||||||
function FindPackageWithName(const PkgName: string): TIDEPackage; override;
|
function FindPackageWithName(const PkgName: string): TIDEPackage; override;
|
||||||
|
procedure RedirectPackageDependency(var APackage: TLazPackage);
|
||||||
|
|
||||||
// project
|
// project
|
||||||
function OpenProjectDependencies(AProject: TProject;
|
function OpenProjectDependencies(AProject: TProject;
|
||||||
@ -1933,12 +1933,17 @@ procedure TPkgManager.AddProjectRegCompDependency(AProject: TProject;
|
|||||||
ARegisteredComponent: TRegisteredComponent);
|
ARegisteredComponent: TRegisteredComponent);
|
||||||
var
|
var
|
||||||
PkgFile: TPkgFile;
|
PkgFile: TPkgFile;
|
||||||
|
APackage: TLazPackage;
|
||||||
begin
|
begin
|
||||||
if not (ARegisteredComponent is TPkgComponent) then exit;
|
if not (ARegisteredComponent is TPkgComponent) then exit;
|
||||||
|
|
||||||
PkgFile:=TPkgComponent(ARegisteredComponent).PkgFile;
|
PkgFile:=TPkgComponent(ARegisteredComponent).PkgFile;
|
||||||
if (PkgFile=nil) or (PkgFile.LazPackage=nil) then exit;
|
if (PkgFile=nil) then exit;
|
||||||
AddProjectDependency(AProject,PkgFile.LazPackage);
|
|
||||||
|
APackage:=PkgFile.LazPackage;
|
||||||
|
RedirectPackageDependency(APackage);
|
||||||
|
|
||||||
|
AddProjectDependency(AProject,APackage);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPkgManager.AddProjectLCLDependency(AProject: TProject);
|
procedure TPkgManager.AddProjectLCLDependency(AProject: TProject);
|
||||||
@ -2488,6 +2493,15 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TPkgManager.RedirectPackageDependency(var APackage: TLazPackage);
|
||||||
|
begin
|
||||||
|
if APackage=PackageGraph.LCLBasePackage then begin
|
||||||
|
// Older Lazarus does not have a LCLBase and a component does not work
|
||||||
|
// without an LCLBase implementation, so we have to use LCL instead.
|
||||||
|
APackage:=PackageGraph.LCLPackage;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TPkgManager.DoCompileProjectDependencies(AProject: TProject;
|
function TPkgManager.DoCompileProjectDependencies(AProject: TProject;
|
||||||
Flags: TPkgCompileFlags): TModalResult;
|
Flags: TPkgCompileFlags): TModalResult;
|
||||||
begin
|
begin
|
||||||
@ -2667,6 +2681,7 @@ var
|
|||||||
NewUnitName: String;
|
NewUnitName: String;
|
||||||
PkgFile: TPkgFile;
|
PkgFile: TPkgFile;
|
||||||
ClassUnitInfo: TUnitInfo;
|
ClassUnitInfo: TUnitInfo;
|
||||||
|
APackage: TLazPackage;
|
||||||
begin
|
begin
|
||||||
for i:=0 to ComponentClassnames.Count-1 do begin
|
for i:=0 to ComponentClassnames.Count-1 do begin
|
||||||
//DebugLn(['CollectNeededUnitnamesAndPackages ComponentClassnames[i]=',ComponentClassnames[i]]);
|
//DebugLn(['CollectNeededUnitnamesAndPackages ComponentClassnames[i]=',ComponentClassnames[i]]);
|
||||||
@ -2691,9 +2706,12 @@ var
|
|||||||
//DebugLn(['CollectNeededUnitnamesAndPackages AAA2 PkgFile=',PkgFile<>nil]);
|
//DebugLn(['CollectNeededUnitnamesAndPackages AAA2 PkgFile=',PkgFile<>nil]);
|
||||||
if (PkgFile=nil) and (RegComp is TPkgComponent) then begin
|
if (PkgFile=nil) and (RegComp is TPkgComponent) then begin
|
||||||
PkgFile:=TPkgComponent(RegComp).PkgFile;
|
PkgFile:=TPkgComponent(RegComp).PkgFile;
|
||||||
if (PkgFile<>nil) and (PkgFile.LazPackage<>nil)
|
if (PkgFile<>nil) then begin
|
||||||
and (Packages.IndexOf(PkgFile.LazPackage)<0) then
|
APackage:=PkgFile.LazPackage;
|
||||||
Packages.Add(PkgFile.LazPackage);
|
RedirectPackageDependency(APackage);
|
||||||
|
if (Packages.IndexOf(APackage)<0) then
|
||||||
|
Packages.Add(APackage);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2744,6 +2762,7 @@ var
|
|||||||
for i:=0 to MissingDependencies.Count-1 do begin
|
for i:=0 to MissingDependencies.Count-1 do begin
|
||||||
UnitOwner:=TObject(MissingDependencies[i]);
|
UnitOwner:=TObject(MissingDependencies[i]);
|
||||||
RequiredPackage:=TLazPackage(MissingDependencies.Objects[i]);
|
RequiredPackage:=TLazPackage(MissingDependencies.Objects[i]);
|
||||||
|
RedirectPackageDependency(RequiredPackage);
|
||||||
if UnitOwner is TProject then begin
|
if UnitOwner is TProject then begin
|
||||||
PackageAdditions:=Format(
|
PackageAdditions:=Format(
|
||||||
lisPkgMangAddingNewDependencyForProjectPackage, [PackageAdditions,
|
lisPkgMangAddingNewDependencyForProjectPackage, [PackageAdditions,
|
||||||
@ -2782,6 +2801,7 @@ var
|
|||||||
for i:=0 to MissingDependencies.Count-1 do begin
|
for i:=0 to MissingDependencies.Count-1 do begin
|
||||||
UnitOwner:=TObject(MissingDependencies[i]);
|
UnitOwner:=TObject(MissingDependencies[i]);
|
||||||
RequiredPackage:=TLazPackage(MissingDependencies.Objects[i]);
|
RequiredPackage:=TLazPackage(MissingDependencies.Objects[i]);
|
||||||
|
RedirectPackageDependency(RequiredPackage);
|
||||||
if UnitOwner is TProject then begin
|
if UnitOwner is TProject then begin
|
||||||
DebugLn('TPkgManager.AddUnitDependenciesForComponentClasses Adding Project Dependency ',TProject(UnitOwner).Title,' -> ',RequiredPackage.Name);
|
DebugLn('TPkgManager.AddUnitDependenciesForComponentClasses Adding Project Dependency ',TProject(UnitOwner).Title,' -> ',RequiredPackage.Name);
|
||||||
AddProjectDependency(TProject(UnitOwner),RequiredPackage);
|
AddProjectDependency(TProject(UnitOwner),RequiredPackage);
|
||||||
@ -3258,6 +3278,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
// add package dependency
|
// add package dependency
|
||||||
//DebugLn(['TPkgManager.AddDependencyToUnitOwners ',dbgsName(TObject(OwnersList[0])),' ',RequiredPkg.IDAsString]);
|
//DebugLn(['TPkgManager.AddDependencyToUnitOwners ',dbgsName(TObject(OwnersList[0])),' ',RequiredPkg.IDAsString]);
|
||||||
|
RedirectPackageDependency(RequiredPkg);
|
||||||
Result:=AddDependencyToOwners(OwnersList,RequiredPkg,false);
|
Result:=AddDependencyToOwners(OwnersList,RequiredPkg,false);
|
||||||
finally
|
finally
|
||||||
OwnersList.Free;
|
OwnersList.Free;
|
||||||
|
Loading…
Reference in New Issue
Block a user