mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 14:49:28 +02:00
project groups: show package dependencies
git-svn-id: trunk@50409 -
This commit is contained in:
parent
8be17490d2
commit
6eb5a1469e
@ -4,6 +4,8 @@
|
||||
- Build file
|
||||
- build modes of project as nodes with checkboxes
|
||||
- run external tool
|
||||
- update files when project/package changes in IDE
|
||||
- update dependencies when changed in IDE
|
||||
}
|
||||
unit ProjectGroup;
|
||||
|
||||
@ -61,7 +63,7 @@ type
|
||||
end;
|
||||
|
||||
TTargetEvent = procedure(Sender: TObject; Target: TPGCompileTarget) of object;
|
||||
TTargetExchangeEvent = procedure(Sender: TObject; Target1,Target2: TPGCompileTarget) of object; // ToDo: use index
|
||||
TTargetExchangeEvent = procedure(Sender: TObject; Target1,Target2: TPGCompileTarget) of object;
|
||||
|
||||
{ TIDEProjectGroup }
|
||||
|
||||
@ -90,7 +92,7 @@ type
|
||||
function IndexOfRemovedTarget(const Target: TPGCompileTarget): Integer; override;
|
||||
function AddTarget(Const AFileName: String): TPGCompileTarget; override;
|
||||
procedure RemoveTarget(Index: Integer); override;
|
||||
procedure ExchangeTargets(ASource, ATarget: Integer); override; // ToDo: replace with MoveTarget
|
||||
procedure ExchangeTargets(ASource, ATarget: Integer); override;
|
||||
procedure ActiveTargetChanged(T: TPGCompileTarget);
|
||||
function LoadFromFile(Options: TProjectGroupLoadOptions): Boolean;
|
||||
function SaveToFile: Boolean;
|
||||
@ -870,8 +872,9 @@ procedure TIDECompileTarget.LoadPackage;
|
||||
var
|
||||
MR: TModalResult;
|
||||
I: Integer;
|
||||
Pkg: TIDEPackage;
|
||||
Pkg, RequiredPkg: TIDEPackage;
|
||||
PkgName: String;
|
||||
PkgList: TFPList;
|
||||
begin
|
||||
if FFiles<>nil then exit; // already loaded
|
||||
|
||||
@ -909,7 +912,18 @@ begin
|
||||
FFiles.Add(Pkg.Files[i].Filename);
|
||||
|
||||
// load list of required package
|
||||
// ToDo
|
||||
PkgList:=nil;
|
||||
try
|
||||
PackageEditingInterface.GetRequiredPackages(Pkg,PkgList,[pirNotRecursive]);
|
||||
if PkgList<>nil then
|
||||
for i:=0 to PkgList.Count-1 do begin
|
||||
RequiredPkg:=TIDEPackage(PkgList[i]);
|
||||
PkgName:=ExtractFileUnitname(RequiredPkg.Filename,true);
|
||||
FRequiredPackages.Add(TPGDependency.Create(PkgName));
|
||||
end;
|
||||
finally
|
||||
PkgList.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TIDECompileTarget.LoadProject;
|
||||
@ -1017,7 +1031,6 @@ var
|
||||
begin
|
||||
Result:=arFailed;
|
||||
|
||||
// ToDo: if project loaded
|
||||
if (LazarusIDE.ActiveProject<>nil)
|
||||
and (CompareFilenames(LazarusIDE.ActiveProject.ProjectInfoFile,Filename)=0)
|
||||
then begin
|
||||
@ -1148,11 +1161,8 @@ begin
|
||||
case AAction of
|
||||
taOpen: ProjectGroupManager.LoadProjectGroup(FileName,[]);
|
||||
taSettings: ;
|
||||
taCompile: ;
|
||||
taCompileClean: ;
|
||||
taRun: ;
|
||||
taInstall: ;
|
||||
taUninstall: ;
|
||||
taCompile,
|
||||
taCompileClean: ;// ToDo
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1161,14 +1171,13 @@ function TIDECompileTarget.PascalFileAction(AAction: TPGTargetAction
|
||||
begin
|
||||
Result:=arFailed;
|
||||
debugln(['TIDECompileTarget.PascalFileAction ToDo']);
|
||||
// ToDo
|
||||
case AAction of
|
||||
taOpen: ;
|
||||
taSettings: ;
|
||||
taCompile: ;
|
||||
taCompileClean: ;
|
||||
taRun: ;
|
||||
taInstall: ;
|
||||
taUninstall: ;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1177,14 +1186,12 @@ function TIDECompileTarget.ExternalToolAction(AAction: TPGTargetAction
|
||||
begin
|
||||
Result:=arFailed;
|
||||
debugln(['TIDECompileTarget.ExternalToolAction ToDo']);
|
||||
// ToDo
|
||||
case AAction of
|
||||
taOpen: ;
|
||||
taSettings: ;
|
||||
taCompile: ;
|
||||
taCompileClean: ;
|
||||
taRun: ;
|
||||
taInstall: ;
|
||||
taUninstall: ;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
Todo:
|
||||
- show * when modified
|
||||
- save on save all
|
||||
- close windows on IDE close
|
||||
- activate project when project is opened
|
||||
- deactivate project when project is closed
|
||||
- make dockable
|
||||
}
|
||||
unit ProjectGroupEditor;
|
||||
|
||||
@ -328,7 +327,7 @@ procedure TProjectGroupEditorForm.Localize;
|
||||
if AImageIndex<>-1 then
|
||||
A.ImageIndex:=AImageIndex;
|
||||
If Assigned(mnu) then
|
||||
Mnu.OnClick:=A.OnExecute; // ToDo Enabled and visible don't play well with actions...
|
||||
Mnu.OnClick:=A.OnExecute;
|
||||
end;
|
||||
|
||||
begin
|
||||
@ -910,7 +909,7 @@ var
|
||||
NodeData: TNodeData;
|
||||
begin
|
||||
ShowFileName;
|
||||
// ToDo: update nodes
|
||||
// update all nodes with file names
|
||||
TVPG.BeginUpdate;
|
||||
TVNode:=TVPG.Items.GetFirstNode;
|
||||
while TVNode<>nil do begin
|
||||
@ -1155,7 +1154,6 @@ begin
|
||||
try
|
||||
PF[False]:=CreateSectionNode(AParent,lisNodeFiles,ntFiles);
|
||||
PF[True]:=nil; //CreateNode(AParent,lisNodeRemovedFiles,ntFiles,Nil,AProjectGroup);
|
||||
// TODO Ideally, we can show removed files
|
||||
for i:=0 to T.FileCount-1 do
|
||||
CreateSubNode(PF[False],ntFile,T,T.Files[i]);
|
||||
ShowDependencies(AParent,T,PD);
|
||||
@ -1175,7 +1173,6 @@ begin
|
||||
try
|
||||
PF[False]:=CreateSectionNode(AParent,lisNodeFiles,ntFiles);
|
||||
PF[True]:=nil; //CreateNode(AParent,lisNodeRemovedFiles,ntFiles,Nil,AProjectGroup);
|
||||
// ToDo Ideally, we can show removed files
|
||||
for i:=0 to T.FileCount-1 do
|
||||
CreateSubNode(PF[False],ntFile,T,T.Files[i]);
|
||||
ShowDependencies(AParent,T,PD);
|
||||
|
@ -75,7 +75,7 @@ Type
|
||||
procedure DeActivate;
|
||||
function GetRootProjectGroup: TProjectGroup;
|
||||
property Parent: TPGCompileTarget read FParent;
|
||||
property Filename: string read FFilename write SetFilename; // Absolute, not relative. (ToDo: store them relative)
|
||||
property Filename: string read FFilename write SetFilename; // Absolute, not relative.
|
||||
property Removed: boolean read FRemoved write SetRemoved;
|
||||
property TargetType: TPGTargetType read FTargetType write SetTargetType;
|
||||
property Active: Boolean Read FActive;
|
||||
|
@ -31,7 +31,7 @@ begin
|
||||
Section:=RegisterIDEMenuSection(Root,'Compile');
|
||||
PGEditMenuSectionCompile:=Section;
|
||||
cmdTargetCompile:=RegisterIDEMenuCommand(Section,'TargetCompile',lisTargetCompile);// ToDo: caption: compile "target"
|
||||
cmdTargetCompileClean:=RegisterIDEMenuCommand(Section,'TargetCompileClean',lisTargetCompileClean);// ToDo
|
||||
cmdTargetCompileClean:=RegisterIDEMenuCommand(Section,'TargetCompileClean',lisTargetCompileClean);
|
||||
// ToDo: clean ... -> clean up dialog
|
||||
// ToDo: compile all from here
|
||||
// ToDo: set build mode of all projects
|
||||
@ -39,7 +39,8 @@ begin
|
||||
Section:=RegisterIDEMenuSection(Root,'AddRemove');
|
||||
PGEditMenuSectionAddRemove:=Section;
|
||||
cmdTargetAdd:=RegisterIDEMenuCommand(Section,'TargetAdd',lisTargetAdd);
|
||||
cmdTargetRemove:=RegisterIDEMenuCommand(Section,'TargetRemove',lisTargetRemove);// ToDo
|
||||
cmdTargetRemove:=RegisterIDEMenuCommand(Section,'TargetRemove',lisTargetRemove);
|
||||
// ToDo: re-add
|
||||
|
||||
Section:=RegisterIDEMenuSection(Root,'Use');
|
||||
PGEditMenuSectionUse:=Section;
|
||||
@ -49,10 +50,8 @@ begin
|
||||
cmdTargetLater:=RegisterIDEMenuCommand(Section,'TargetLater',lisTargetLater);// ToDo: Ctrl+Down
|
||||
cmdTargetActivate:=RegisterIDEMenuCommand(Section,'TargetActivate',lisTargetActivate);
|
||||
cmdTargetOpen:=RegisterIDEMenuCommand(Section,'TargetOpen',lisTargetOpen);
|
||||
// ToDo: Save
|
||||
// ToDo: Close (package editor)
|
||||
cmdTargetRun:=RegisterIDEMenuCommand(Section,'TargetRun',lisTargetRun);
|
||||
cmdTargetProperties:=RegisterIDEMenuCommand(Section,'TargetProperties',lisTargetProperties);// ToDo
|
||||
cmdTargetProperties:=RegisterIDEMenuCommand(Section,'TargetProperties',lisTargetProperties);
|
||||
|
||||
Section:=RegisterIDEMenuSection(Root,'Misc');
|
||||
PGEditMenuSectionMisc:=Section;
|
||||
|
Loading…
Reference in New Issue
Block a user