mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 22:00:20 +02:00
implemented inherited compiler options
git-svn-id: trunk@4059 -
This commit is contained in:
parent
aa0f5a45d5
commit
74214654f9
File diff suppressed because it is too large
Load Diff
@ -4260,7 +4260,7 @@ begin
|
|||||||
Left:=5;
|
Left:=5;
|
||||||
Width:=MaxX-Left-Left;
|
Width:=MaxX-Left-Left;
|
||||||
Height:=16;
|
Height:=16;
|
||||||
Caption:=dlgEdHintCommand ;
|
Caption:=dlgEdHintCommand;
|
||||||
Visible:=true;
|
Visible:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -4272,7 +4272,7 @@ begin
|
|||||||
Left:=0;
|
Left:=0;
|
||||||
Width:=MaxX-Left-Left;
|
Width:=MaxX-Left-Left;
|
||||||
Height:=MaxY-Top;
|
Height:=MaxY-Top;
|
||||||
Options:=[tvoReadOnly, tvoShowButtons, tvoShowRoot,
|
Options:=Options+[tvoReadOnly, tvoShowButtons, tvoShowRoot,
|
||||||
tvoShowLines, tvoRowSelect, tvoKeepCollapsedNodes, tvoShowSeparators];
|
tvoShowLines, tvoRowSelect, tvoKeepCollapsedNodes, tvoShowSeparators];
|
||||||
OnMouseUp:=@KeyMappingTreeViewMouseUp;
|
OnMouseUp:=@KeyMappingTreeViewMouseUp;
|
||||||
Images:=Self.ImageList;
|
Images:=Self.ImageList;
|
||||||
|
@ -563,6 +563,7 @@ resourcestring
|
|||||||
dlgCOLinking = 'Linking';
|
dlgCOLinking = 'Linking';
|
||||||
dlgCOMessages = 'Messages';
|
dlgCOMessages = 'Messages';
|
||||||
dlgCOOther = 'Other';
|
dlgCOOther = 'Other';
|
||||||
|
dlgCOInherited = 'Inherited';
|
||||||
dlgShowCompilerOptions = 'Show compiler options';
|
dlgShowCompilerOptions = 'Show compiler options';
|
||||||
dlgCOOpts = 'Options: ';
|
dlgCOOpts = 'Options: ';
|
||||||
dlgCOStyle = 'Style:';
|
dlgCOStyle = 'Style:';
|
||||||
|
@ -1039,7 +1039,7 @@ begin
|
|||||||
fActiveEditorIndexAtStart := -1;
|
fActiveEditorIndexAtStart := -1;
|
||||||
FAutoCreateForms := true;
|
FAutoCreateForms := true;
|
||||||
fBookmarks := TProjectBookmarkList.Create;
|
fBookmarks := TProjectBookmarkList.Create;
|
||||||
fCompilerOptions := TCompilerOptions.Create;
|
fCompilerOptions := TCompilerOptions.Create(Self);
|
||||||
FFlags:=DefaultProjectFlags;
|
FFlags:=DefaultProjectFlags;
|
||||||
fIconPath := '';
|
fIconPath := '';
|
||||||
fJumpHistory:=TProjectJumpHistory.Create;
|
fJumpHistory:=TProjectJumpHistory.Create;
|
||||||
@ -2296,6 +2296,9 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.104 2003/04/14 18:03:47 mattias
|
||||||
|
implemented inherited compiler options
|
||||||
|
|
||||||
Revision 1.103 2003/04/13 13:45:04 mattias
|
Revision 1.103 2003/04/13 13:45:04 mattias
|
||||||
implemented broken dependencies dialog
|
implemented broken dependencies dialog
|
||||||
|
|
||||||
|
@ -1299,6 +1299,7 @@ type
|
|||||||
tvsStateChanging,
|
tvsStateChanging,
|
||||||
tvsManualNotify,
|
tvsManualNotify,
|
||||||
tvsUpdating,
|
tvsUpdating,
|
||||||
|
tvsPainting,
|
||||||
tvsMouseCapture,
|
tvsMouseCapture,
|
||||||
tvsWaitForDragging,
|
tvsWaitForDragging,
|
||||||
tvsDblClicked,
|
tvsDblClicked,
|
||||||
@ -1500,6 +1501,8 @@ type
|
|||||||
procedure Expand(Node: TTreeNode); dynamic;
|
procedure Expand(Node: TTreeNode); dynamic;
|
||||||
procedure GetImageIndex(Node: TTreeNode); virtual;
|
procedure GetImageIndex(Node: TTreeNode); virtual;
|
||||||
procedure GetSelectedIndex(Node: TTreeNode); virtual;
|
procedure GetSelectedIndex(Node: TTreeNode); virtual;
|
||||||
|
procedure InitializeWnd; override;
|
||||||
|
procedure Invalidate; override;
|
||||||
procedure KeyDown(var Key : Word; Shift : TShiftState); override;
|
procedure KeyDown(var Key : Word; Shift : TShiftState); override;
|
||||||
procedure Loaded; override;
|
procedure Loaded; override;
|
||||||
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y:
|
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y:
|
||||||
@ -1754,6 +1757,9 @@ end.
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.72 2003/04/14 18:03:48 mattias
|
||||||
|
implemented inherited compiler options
|
||||||
|
|
||||||
Revision 1.71 2003/04/13 13:45:04 mattias
|
Revision 1.71 2003/04/13 13:45:04 mattias
|
||||||
implemented broken dependencies dialog
|
implemented broken dependencies dialog
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
const
|
const
|
||||||
TTreeNodeStreamVersion : word = 1;
|
TTreeNodeStreamVersion : word = 1;
|
||||||
|
TVAutoHeightString = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789|\()^';
|
||||||
|
|
||||||
// maximum scroll range
|
// maximum scroll range
|
||||||
//MAX_SCROLL = 32767;
|
//MAX_SCROLL = 32767;
|
||||||
@ -2556,7 +2557,6 @@ procedure TCustomTreeView.CreateWnd;
|
|||||||
begin
|
begin
|
||||||
Exclude(FStates,tvsStateChanging);
|
Exclude(FStates,tvsStateChanging);
|
||||||
inherited CreateWnd;
|
inherited CreateWnd;
|
||||||
UpdateDefaultItemHeight;
|
|
||||||
|
|
||||||
//TreeView_SetBkColor(Handle, ColorToRGB(Color));
|
//TreeView_SetBkColor(Handle, ColorToRGB(Color));
|
||||||
//TreeView_SetTextColor(Handle, ColorToRGB(Font.Color));
|
//TreeView_SetTextColor(Handle, ColorToRGB(Font.Color));
|
||||||
@ -2576,6 +2576,18 @@ begin
|
|||||||
// SetImageList(StateImages.Handle, TVSIL_STATE);
|
// SetImageList(StateImages.Handle, TVSIL_STATE);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCustomTreeView.InitializeWnd;
|
||||||
|
begin
|
||||||
|
inherited InitializeWnd;
|
||||||
|
UpdateDefaultItemHeight;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCustomTreeView.Invalidate;
|
||||||
|
begin
|
||||||
|
if tvsPainting in FStates then exit;
|
||||||
|
inherited Invalidate;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCustomTreeView.DestroyWnd;
|
procedure TCustomTreeView.DestroyWnd;
|
||||||
//var Node: TTreeNode;
|
//var Node: TTreeNode;
|
||||||
begin
|
begin
|
||||||
@ -2858,7 +2870,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if tvoAutoItemHeight in ChangedOptions then
|
if tvoAutoItemHeight in ChangedOptions then
|
||||||
UpdateDefaultItemHeight;
|
UpdateDefaultItemHeight;
|
||||||
if ([tvoHideSelection,tvoReadOnly,tvoShowButtons,tvoShowRoot,tvoShowLines]
|
if ([tvoHideSelection,tvoReadOnly,tvoShowButtons,tvoShowRoot,tvoShowLines]
|
||||||
* ChangedOptions)<>[]
|
* ChangedOptions)<>[]
|
||||||
then
|
then
|
||||||
@ -2866,16 +2878,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCustomTreeView.UpdateDefaultItemHeight;
|
procedure TCustomTreeView.UpdateDefaultItemHeight;
|
||||||
|
var
|
||||||
|
NewDefItemHeight: Integer;
|
||||||
begin
|
begin
|
||||||
if HandleAllocated and (tvoAutoItemHeight in FOptions) then begin
|
if (tvoAutoItemHeight in FOptions)
|
||||||
FDefItemHeight:=
|
and HandleAllocated and Canvas.HandleAllocated then begin
|
||||||
Canvas.TextHeight('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789|\()^')
|
NewDefItemHeight:=Canvas.TextHeight(TVAutoHeightString)+2; // +2 for border
|
||||||
+2 // border
|
if NewDefItemHeight<2 then NewDefItemHeight:=2;
|
||||||
;
|
if (Images<>nil) and (Images.Height>NewDefItemHeight) then
|
||||||
if (Images<>nil) and (Images.Height>FDefItemHeight) then
|
NewDefItemHeight:=Images.Height;
|
||||||
FDefItemHeight:=Images.Height;
|
if (StateImages<>nil) and (StateImages.Height>NewDefItemHeight) then
|
||||||
if (StateImages<>nil) and (StateImages.Height>FDefItemHeight) then
|
NewDefItemHeight:=StateImages.Height;
|
||||||
FDefItemHeight:=StateImages.Height;
|
if NewDefItemHeight<>FDefItemHeight then begin
|
||||||
|
FDefItemHeight:=NewDefItemHeight;
|
||||||
|
Include(FStates,tvsTopsNeedsUpdate);
|
||||||
|
Invalidate;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -3884,7 +3902,10 @@ var
|
|||||||
SpaceRect, DrawRect: TRect;
|
SpaceRect, DrawRect: TRect;
|
||||||
Node: TTreeNode;
|
Node: TTreeNode;
|
||||||
begin
|
begin
|
||||||
if tvsUpdating in FStates then exit;
|
if [tvsUpdating,tvsPainting]*FStates<>[] then exit;
|
||||||
|
Include(FStates,tvsPainting);
|
||||||
|
if (tvoAutoItemHeight in fOptions) then
|
||||||
|
UpdateDefaultItemHeight;
|
||||||
UpdateScrollbars;
|
UpdateScrollbars;
|
||||||
with Canvas do begin
|
with Canvas do begin
|
||||||
if Assigned(FOnCustomDraw) or Assigned(FOnAdvancedCustomDraw) then begin
|
if Assigned(FOnCustomDraw) or Assigned(FOnAdvancedCustomDraw) then begin
|
||||||
@ -3939,6 +3960,7 @@ begin
|
|||||||
if not CustomDraw(DrawRect,cdPostPaint) then exit;
|
if not CustomDraw(DrawRect,cdPostPaint) then exit;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
Exclude(FStates,tvsPainting);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCustomTreeView.DoPaintNode(Node: TTreeNode);
|
procedure TCustomTreeView.DoPaintNode(Node: TTreeNode);
|
||||||
|
@ -49,12 +49,17 @@ uses
|
|||||||
CompilerOptions, Forms, FileCtrl, IDEProcs, ComponentReg;
|
CompilerOptions, Forms, FileCtrl, IDEProcs, ComponentReg;
|
||||||
|
|
||||||
type
|
type
|
||||||
TLazPackageID = class;
|
|
||||||
TLazPackage = class;
|
TLazPackage = class;
|
||||||
|
TLazPackageID = class;
|
||||||
TPkgFile = class;
|
TPkgFile = class;
|
||||||
TBasePackageEditor = class;
|
TBasePackageEditor = class;
|
||||||
TPkgDependency = class;
|
TPkgDependency = class;
|
||||||
|
|
||||||
|
TIteratePackagesEvent =
|
||||||
|
procedure(APackage: TLazPackageID) of object;
|
||||||
|
TGetAllRequiredPackagesEvent =
|
||||||
|
procedure(FirstDependency: TPkgDependency; var List: TList) of object;
|
||||||
|
|
||||||
|
|
||||||
{ TPkgComponent }
|
{ TPkgComponent }
|
||||||
|
|
||||||
@ -247,7 +252,24 @@ type
|
|||||||
procedure SetLazPackage(const AValue: TLazPackage);
|
procedure SetLazPackage(const AValue: TLazPackage);
|
||||||
procedure SetModified(const NewValue: boolean); override;
|
procedure SetModified(const NewValue: boolean); override;
|
||||||
public
|
public
|
||||||
|
constructor Create(ThePackage: TLazPackage);
|
||||||
procedure Clear; override;
|
procedure Clear; override;
|
||||||
|
procedure GetInheritedCompilerOptions(var OptionsList: TList); override;
|
||||||
|
function GetOwnerName: string; override;
|
||||||
|
public
|
||||||
|
property LazPackage: TLazPackage read FLazPackage write SetLazPackage;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ TPkgAdditinoalCompilerOptions }
|
||||||
|
|
||||||
|
TPkgAdditionalCompilerOptions = class(TAdditionalCompilerOptions)
|
||||||
|
private
|
||||||
|
FLazPackage: TLazPackage;
|
||||||
|
procedure SetLazPackage(const AValue: TLazPackage);
|
||||||
|
public
|
||||||
|
constructor Create(ThePackage: TLazPackage);
|
||||||
|
function GetOwnerName: string; override;
|
||||||
public
|
public
|
||||||
property LazPackage: TLazPackage read FLazPackage write SetLazPackage;
|
property LazPackage: TLazPackage read FLazPackage write SetLazPackage;
|
||||||
end;
|
end;
|
||||||
@ -311,7 +333,6 @@ type
|
|||||||
|
|
||||||
TLazPackage = class(TLazPackageID)
|
TLazPackage = class(TLazPackageID)
|
||||||
private
|
private
|
||||||
FAddDependCompilerOptions: TAdditionalCompilerOptions;
|
|
||||||
FAuthor: string;
|
FAuthor: string;
|
||||||
FAutoCreated: boolean;
|
FAutoCreated: boolean;
|
||||||
FAutoInstall: TPackageInstallType;
|
FAutoInstall: TPackageInstallType;
|
||||||
@ -334,7 +355,7 @@ type
|
|||||||
FReadOnly: boolean;
|
FReadOnly: boolean;
|
||||||
FRemovedFiles: TList; // TList of TPkgFile
|
FRemovedFiles: TList; // TList of TPkgFile
|
||||||
FRegistered: boolean;
|
FRegistered: boolean;
|
||||||
FUsageOptions: TAdditionalCompilerOptions;
|
FUsageOptions: TPkgAdditionalCompilerOptions;
|
||||||
function GetAutoIncrementVersionOnBuild: boolean;
|
function GetAutoIncrementVersionOnBuild: boolean;
|
||||||
function GetAutoUpdate: boolean;
|
function GetAutoUpdate: boolean;
|
||||||
function GetComponentCount: integer;
|
function GetComponentCount: integer;
|
||||||
@ -407,9 +428,9 @@ type
|
|||||||
procedure RemoveUsedByDependency(Dependency: TPkgDependency);
|
procedure RemoveUsedByDependency(Dependency: TPkgDependency);
|
||||||
procedure ChangeID(const NewName: string; NewVersion: TPkgVersion);
|
procedure ChangeID(const NewName: string; NewVersion: TPkgVersion);
|
||||||
procedure UpdateEditorRect;
|
procedure UpdateEditorRect;
|
||||||
|
procedure GetAllRequiredPackages(var List: TList);
|
||||||
|
procedure GetInheritedCompilerOptions(var OptionsList: TList);
|
||||||
public
|
public
|
||||||
property AddDependCompilerOptions: TAdditionalCompilerOptions
|
|
||||||
read FAddDependCompilerOptions;
|
|
||||||
property Author: string read FAuthor write SetAuthor;
|
property Author: string read FAuthor write SetAuthor;
|
||||||
property AutoCreated: boolean read FAutoCreated write SetAutoCreated;
|
property AutoCreated: boolean read FAutoCreated write SetAutoCreated;
|
||||||
property AutoIncrementVersionOnBuild: boolean
|
property AutoIncrementVersionOnBuild: boolean
|
||||||
@ -439,7 +460,7 @@ type
|
|||||||
property ReadOnly: boolean read FReadOnly write SetReadOnly;
|
property ReadOnly: boolean read FReadOnly write SetReadOnly;
|
||||||
property RemovedFilesCount: integer read GetRemovedCount;
|
property RemovedFilesCount: integer read GetRemovedCount;
|
||||||
property RemovedFiles[Index: integer]: TPkgFile read GetRemovedFiles;
|
property RemovedFiles[Index: integer]: TPkgFile read GetRemovedFiles;
|
||||||
property UsageOptions: TAdditionalCompilerOptions
|
property UsageOptions: TPkgAdditionalCompilerOptions
|
||||||
read FUsageOptions;
|
read FUsageOptions;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -476,6 +497,8 @@ var
|
|||||||
// All TPkgDependency are added to this AVL tree (sorted for names, not version!)
|
// All TPkgDependency are added to this AVL tree (sorted for names, not version!)
|
||||||
PackageDependencies: TAVLTree; // tree of TPkgDependency
|
PackageDependencies: TAVLTree; // tree of TPkgDependency
|
||||||
|
|
||||||
|
OnGetAllRequiredPackages: TGetAllRequiredPackagesEvent;
|
||||||
|
|
||||||
|
|
||||||
function PkgFileTypeIdentToType(const s: string): TPkgFileType;
|
function PkgFileTypeIdentToType(const s: string): TPkgFileType;
|
||||||
function LazPackageTypeIdentToType(const s: string): TLazPackageType;
|
function LazPackageTypeIdentToType(const s: string): TLazPackageType;
|
||||||
@ -1372,15 +1395,13 @@ end;
|
|||||||
constructor TLazPackage.Create;
|
constructor TLazPackage.Create;
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
FAddDependCompilerOptions:=TAdditionalCompilerOptions.Create;
|
|
||||||
FComponents:=TList.Create;
|
FComponents:=TList.Create;
|
||||||
FFiles:=TList.Create;
|
FFiles:=TList.Create;
|
||||||
FRemovedFiles:=TList.Create;
|
FRemovedFiles:=TList.Create;
|
||||||
FCompilerOptions:=TPkgCompilerOptions.Create;
|
FCompilerOptions:=TPkgCompilerOptions.Create(Self);
|
||||||
FCompilerOptions.LazPackage:=Self;
|
|
||||||
FUsageOptions:=TAdditionalCompilerOptions.Create;
|
|
||||||
FInstalled:=pitNope;
|
FInstalled:=pitNope;
|
||||||
FAutoInstall:=pitNope;
|
FAutoInstall:=pitNope;
|
||||||
|
FUsageOptions:=TPkgAdditionalCompilerOptions.Create(Self);
|
||||||
FFlags:=[lpfAutoIncrementVersionOnBuild,lpfAutoUpdate];
|
FFlags:=[lpfAutoIncrementVersionOnBuild,lpfAutoUpdate];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1392,7 +1413,6 @@ begin
|
|||||||
FreeAndNil(FComponents);
|
FreeAndNil(FComponents);
|
||||||
FreeAndNil(FCompilerOptions);
|
FreeAndNil(FCompilerOptions);
|
||||||
FreeAndNil(FUsageOptions);
|
FreeAndNil(FUsageOptions);
|
||||||
FreeAndNil(FAddDependCompilerOptions);
|
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1426,7 +1446,6 @@ begin
|
|||||||
FPackageType:=lptRunAndDesignTime;
|
FPackageType:=lptRunAndDesignTime;
|
||||||
FRegistered:=false;
|
FRegistered:=false;
|
||||||
FUsageOptions.Clear;
|
FUsageOptions.Clear;
|
||||||
FAddDependCompilerOptions.Clear;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TLazPackage.LockModified;
|
procedure TLazPackage.LockModified;
|
||||||
@ -1522,8 +1541,6 @@ begin
|
|||||||
LoadPkgDependencyList(Path+'RequiredPkgs/',
|
LoadPkgDependencyList(Path+'RequiredPkgs/',
|
||||||
FFirstRequiredDependency,pdlRequires);
|
FFirstRequiredDependency,pdlRequires);
|
||||||
FUsageOptions.LoadFromXMLConfig(XMLConfig,Path+'UsageOptions/');
|
FUsageOptions.LoadFromXMLConfig(XMLConfig,Path+'UsageOptions/');
|
||||||
FAddDependCompilerOptions.LoadFromXMLConfig(
|
|
||||||
XMLConfig,Path+'AddDependCompilerOptions/');
|
|
||||||
LoadRect(XMLConfig,Path+'EditorRect/',fEditorRect);
|
LoadRect(XMLConfig,Path+'EditorRect/',fEditorRect);
|
||||||
Modified:=false;
|
Modified:=false;
|
||||||
UnlockModified;
|
UnlockModified;
|
||||||
@ -1583,8 +1600,6 @@ begin
|
|||||||
SavePkgDependencyList(Path+'RequiredPkgs/',
|
SavePkgDependencyList(Path+'RequiredPkgs/',
|
||||||
FFirstRequiredDependency,pdlRequires);
|
FFirstRequiredDependency,pdlRequires);
|
||||||
FUsageOptions.SaveToXMLConfig(XMLConfig,Path+'UsageOptions/');
|
FUsageOptions.SaveToXMLConfig(XMLConfig,Path+'UsageOptions/');
|
||||||
FAddDependCompilerOptions.SaveToXMLConfig(
|
|
||||||
XMLConfig,Path+'AddDependCompilerOptions/');
|
|
||||||
SaveRect(XMLConfig,Path+'EditorRect/',fEditorRect);
|
SaveRect(XMLConfig,Path+'EditorRect/',fEditorRect);
|
||||||
Modified:=false;
|
Modified:=false;
|
||||||
end;
|
end;
|
||||||
@ -1889,6 +1904,32 @@ begin
|
|||||||
Editor.Left+Editor.Width,Editor.Top+Editor.Height);
|
Editor.Left+Editor.Width,Editor.Top+Editor.Height);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLazPackage.GetAllRequiredPackages(var List: TList);
|
||||||
|
begin
|
||||||
|
if Assigned(OnGetAllRequiredPackages) then
|
||||||
|
OnGetAllRequiredPackages(FirstRequiredDependency,List);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TLazPackage.GetInheritedCompilerOptions(var OptionsList: TList);
|
||||||
|
var
|
||||||
|
PkgList: TList; // list of TLazPackage
|
||||||
|
Cnt: Integer;
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
PkgList:=nil;
|
||||||
|
GetAllRequiredPackages(PkgList);
|
||||||
|
if PkgList<>nil then begin
|
||||||
|
OptionsList:=TList.Create;
|
||||||
|
Cnt:=PkgList.Count;
|
||||||
|
for i:=0 to Cnt-1 do begin
|
||||||
|
writeln('TLazPackage.GetInheritedCompilerOptions A ');
|
||||||
|
OptionsList.Add(TLazPackage(PkgList[i]).UsageOptions);
|
||||||
|
end;
|
||||||
|
end else begin
|
||||||
|
OptionsList:=nil;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TPkgComponent }
|
{ TPkgComponent }
|
||||||
|
|
||||||
procedure TPkgComponent.SetPkgFile(const AValue: TPkgFile);
|
procedure TPkgComponent.SetPkgFile(const AValue: TPkgFile);
|
||||||
@ -2041,11 +2082,49 @@ begin
|
|||||||
if Modified and (LazPackage<>nil) then LazPackage.Modified:=true;
|
if Modified and (LazPackage<>nil) then LazPackage.Modified:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
constructor TPkgCompilerOptions.Create(ThePackage: TLazPackage);
|
||||||
|
begin
|
||||||
|
inherited Create(ThePackage);
|
||||||
|
fLazPackage:=ThePackage;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TPkgCompilerOptions.Clear;
|
procedure TPkgCompilerOptions.Clear;
|
||||||
begin
|
begin
|
||||||
inherited Clear;
|
inherited Clear;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TPkgCompilerOptions.GetInheritedCompilerOptions(var OptionsList: TList
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
LazPackage.GetInheritedCompilerOptions(OptionsList);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TPkgCompilerOptions.GetOwnerName: string;
|
||||||
|
begin
|
||||||
|
writeln('TPkgCompilerOptions.GetOwnerName ',HexStr(Cardinal(Self),8),' ',HexStr(Cardinal(fLazPackage),8));
|
||||||
|
Result:=LazPackage.IDAsString;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TPkgAdditionalCompilerOptions }
|
||||||
|
|
||||||
|
procedure TPkgAdditionalCompilerOptions.SetLazPackage(const AValue: TLazPackage
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
if FLazPackage=AValue then exit;
|
||||||
|
FLazPackage:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TPkgAdditionalCompilerOptions.Create(ThePackage: TLazPackage);
|
||||||
|
begin
|
||||||
|
inherited Create(ThePackage);
|
||||||
|
FLazPackage:=ThePackage;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TPkgAdditionalCompilerOptions.GetOwnerName: string;
|
||||||
|
begin
|
||||||
|
Result:=LazPackage.IDAsString;
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
PackageDependencies:=TAVLTree.Create(@ComparePkgDependencyNames);
|
PackageDependencies:=TAVLTree.Create(@ComparePkgDependencyNames);
|
||||||
|
|
||||||
|
@ -42,9 +42,6 @@ uses
|
|||||||
PackageDefs, LazConf;
|
PackageDefs, LazConf;
|
||||||
|
|
||||||
type
|
type
|
||||||
TIteratePackagesEvent =
|
|
||||||
procedure(APackage: TLazPackageID) of object;
|
|
||||||
|
|
||||||
|
|
||||||
{ TPackageLink }
|
{ TPackageLink }
|
||||||
|
|
||||||
|
@ -142,6 +142,7 @@ type
|
|||||||
procedure AddStaticBasePackages;
|
procedure AddStaticBasePackages;
|
||||||
procedure ClosePackage(APackage: TLazPackage);
|
procedure ClosePackage(APackage: TLazPackage);
|
||||||
procedure MarkNeededPackages;
|
procedure MarkNeededPackages;
|
||||||
|
procedure MarkAllPackagesAsNotVisited;
|
||||||
procedure CloseUnneededPackages;
|
procedure CloseUnneededPackages;
|
||||||
procedure ChangePackageID(APackage: TLazPackage;
|
procedure ChangePackageID(APackage: TLazPackage;
|
||||||
const NewName: string; NewVersion: TPkgVersion;
|
const NewName: string; NewVersion: TPkgVersion;
|
||||||
@ -165,6 +166,8 @@ type
|
|||||||
Event: TIteratePackagesEvent);
|
Event: TIteratePackagesEvent);
|
||||||
procedure IteratePackagesSorted(Flags: TFindPackageFlags;
|
procedure IteratePackagesSorted(Flags: TFindPackageFlags;
|
||||||
Event: TIteratePackagesEvent);
|
Event: TIteratePackagesEvent);
|
||||||
|
procedure GetAllRequiredPackages(FirstDependency: TPkgDependency;
|
||||||
|
var List: TList);
|
||||||
public
|
public
|
||||||
property AbortRegistration: boolean read FAbortRegistration
|
property AbortRegistration: boolean read FAbortRegistration
|
||||||
write SetAbortRegistration;
|
write SetAbortRegistration;
|
||||||
@ -287,6 +290,7 @@ end;
|
|||||||
|
|
||||||
constructor TLazPackageGraph.Create;
|
constructor TLazPackageGraph.Create;
|
||||||
begin
|
begin
|
||||||
|
OnGetAllRequiredPackages:=@GetAllRequiredPackages;
|
||||||
FTree:=TAVLTree.Create(@CompareLazPackageID);
|
FTree:=TAVLTree.Create(@CompareLazPackageID);
|
||||||
FItems:=TList.Create;
|
FItems:=TList.Create;
|
||||||
end;
|
end;
|
||||||
@ -299,6 +303,8 @@ begin
|
|||||||
RegisterComponentsProc:=nil;
|
RegisterComponentsProc:=nil;
|
||||||
if RegisterNoIconProc=@RegisterNoIconGlobalHandler then
|
if RegisterNoIconProc=@RegisterNoIconGlobalHandler then
|
||||||
RegisterNoIconProc:=nil;
|
RegisterNoIconProc:=nil;
|
||||||
|
if OnGetAllRequiredPackages=@GetAllRequiredPackages then
|
||||||
|
OnGetAllRequiredPackages:=nil;
|
||||||
Clear;
|
Clear;
|
||||||
FItems.Free;
|
FItems.Free;
|
||||||
FTree.Free;
|
FTree.Free;
|
||||||
@ -790,7 +796,7 @@ begin
|
|||||||
AddFile('calendar.pp','Calendar',pftUnit,[pffHasRegisterProc],cpLCL);
|
AddFile('calendar.pp','Calendar',pftUnit,[pffHasRegisterProc],cpLCL);
|
||||||
|
|
||||||
// add unit paths
|
// add unit paths
|
||||||
AddDependCompilerOptions.UnitPath:=
|
UsageOptions.UnitPath:=
|
||||||
'$(LazarusDir)/lcl/units;$(LazarusDir)/lcl/units/$(LCLWidgetType)';
|
'$(LazarusDir)/lcl/units;$(LazarusDir)/lcl/units/$(LCLWidgetType)';
|
||||||
|
|
||||||
// add requirements
|
// add requirements
|
||||||
@ -857,7 +863,7 @@ var
|
|||||||
Dependency: TPkgDependency;
|
Dependency: TPkgDependency;
|
||||||
begin
|
begin
|
||||||
if Count=0 then exit;
|
if Count=0 then exit;
|
||||||
// mark all packages as unneeded and not visited
|
// mark all packages as unneeded
|
||||||
for i:=0 to FItems.Count-1 do begin
|
for i:=0 to FItems.Count-1 do begin
|
||||||
Pkg:=TLazPackage(FItems[i]);
|
Pkg:=TLazPackage(FItems[i]);
|
||||||
Pkg.Flags:=Pkg.Flags-[lpfNeeded];
|
Pkg.Flags:=Pkg.Flags-[lpfNeeded];
|
||||||
@ -898,6 +904,18 @@ begin
|
|||||||
FreeMem(PkgStack);
|
FreeMem(PkgStack);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLazPackageGraph.MarkAllPackagesAsNotVisited;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
Pkg: TLazPackage;
|
||||||
|
begin
|
||||||
|
// mark all packages as not visited
|
||||||
|
for i:=FItems.Count-1 downto 0 do begin
|
||||||
|
Pkg:=TLazPackage(FItems[i]);
|
||||||
|
Pkg.Flags:=Pkg.Flags-[lpfVisited];
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TLazPackageGraph.CloseUnneededPackages;
|
procedure TLazPackageGraph.CloseUnneededPackages;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -1190,6 +1208,53 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLazPackageGraph.GetAllRequiredPackages(
|
||||||
|
FirstDependency: TPkgDependency; var List: TList);
|
||||||
|
var
|
||||||
|
Pkg: TLazPackage;
|
||||||
|
PkgStack: PLazPackage;
|
||||||
|
StackPtr: Integer;
|
||||||
|
|
||||||
|
procedure PutPackagesFromDependencyListOnStack(CurDependency: TPkgDependency);
|
||||||
|
var
|
||||||
|
RequiredPackage: TLazPackage;
|
||||||
|
begin
|
||||||
|
while CurDependency<>nil do begin
|
||||||
|
if CurDependency.LoadPackageResult=lprSuccess then begin
|
||||||
|
RequiredPackage:=CurDependency.RequiredPackage;
|
||||||
|
if (not (lpfVisited in RequiredPackage.Flags)) then begin
|
||||||
|
RequiredPackage.Flags:=RequiredPackage.Flags+[lpfVisited];
|
||||||
|
PkgStack[StackPtr]:=RequiredPackage;
|
||||||
|
inc(StackPtr);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
CurDependency:=CurDependency.NextRequiresDependency;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
// initialize
|
||||||
|
MarkAllPackagesAsNotVisited;
|
||||||
|
// create stack
|
||||||
|
GetMem(PkgStack,SizeOf(Pointer)*Count);
|
||||||
|
StackPtr:=0;
|
||||||
|
// put dependency list on stack
|
||||||
|
PutPackagesFromDependencyListOnStack(FirstDependency);
|
||||||
|
// mark all required packages
|
||||||
|
while StackPtr>0 do begin
|
||||||
|
// get required package from stack
|
||||||
|
dec(StackPtr);
|
||||||
|
Pkg:=PkgStack[StackPtr];
|
||||||
|
// add package to list
|
||||||
|
if List=nil then List:=TList.Create;
|
||||||
|
List.Add(Pkg);
|
||||||
|
// put all required packages on stack
|
||||||
|
PutPackagesFromDependencyListOnStack(Pkg.FirstRequiredDependency);
|
||||||
|
end;
|
||||||
|
// clean up
|
||||||
|
FreeMem(PkgStack);
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
PackageGraph:=nil;
|
PackageGraph:=nil;
|
||||||
|
|
||||||
|
@ -378,7 +378,7 @@ begin
|
|||||||
// Usage page
|
// Usage page
|
||||||
LazPackage.PackageType:=NewPackageType;
|
LazPackage.PackageType:=NewPackageType;
|
||||||
LazPackage.AutoUpdate:=(UpdateRadioGroup.ItemIndex=0);
|
LazPackage.AutoUpdate:=(UpdateRadioGroup.ItemIndex=0);
|
||||||
with LazPackage.AddDependCompilerOptions do begin
|
with LazPackage.UsageOptions do begin
|
||||||
UnitPath:=UnitPathEdit.Text;
|
UnitPath:=UnitPathEdit.Text;
|
||||||
IncludePath:=IncludePathEdit.Text;
|
IncludePath:=IncludePathEdit.Text;
|
||||||
ObjectPath:=ObjectPathEdit.Text;
|
ObjectPath:=ObjectPathEdit.Text;
|
||||||
@ -817,12 +817,14 @@ begin
|
|||||||
else
|
else
|
||||||
UpdateRadioGroup.ItemIndex:=1;
|
UpdateRadioGroup.ItemIndex:=1;
|
||||||
|
|
||||||
UnitPathEdit.Text:=LazPackage.AddDependCompilerOptions.UnitPath;
|
with LazPackage.UsageOptions do begin
|
||||||
IncludePathEdit.Text:=LazPackage.AddDependCompilerOptions.IncludePath;
|
UnitPathEdit.Text:=UnitPath;
|
||||||
ObjectPathEdit.Text:=LazPackage.AddDependCompilerOptions.ObjectPath;
|
IncludePathEdit.Text:=IncludePath;
|
||||||
LibraryPathEdit.Text:=LazPackage.AddDependCompilerOptions.LibraryPath;
|
ObjectPathEdit.Text:=ObjectPath;
|
||||||
LinkerOptionsMemo.Text:=LazPackage.AddDependCompilerOptions.LinkerOptions;
|
LibraryPathEdit.Text:=LibraryPath;
|
||||||
CustomOptionsMemo.Text:=LazPackage.AddDependCompilerOptions.CustomOptions;
|
LinkerOptionsMemo.Text:=LinkerOptions;
|
||||||
|
CustomOptionsMemo.Text:=CustomOptions;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageOptionsDialog.ReadPkgTypeFromPackage;
|
procedure TPackageOptionsDialog.ReadPkgTypeFromPackage;
|
||||||
|
Loading…
Reference in New Issue
Block a user