mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-10 04:48:36 +02:00
made package files more relative
git-svn-id: trunk@4542 -
This commit is contained in:
parent
40044dcf40
commit
3a6dd972da
@ -726,6 +726,7 @@ resourcestring
|
||||
dlgEdAdd = 'Add...';
|
||||
dlgEdEdit = 'Edit...';
|
||||
dlgEdDelete = 'Delete';
|
||||
lisA2PSwitchPaths = 'Switch Paths';
|
||||
lisA2PAddFilesToPackage = 'Add files to package';
|
||||
lisA2PAddToPackage = 'Add to package';
|
||||
dlgIndentCodeTo = 'Indent code to';
|
||||
@ -1954,8 +1955,8 @@ resourcestring
|
||||
+'projects and packages.';
|
||||
lisA2PTheMaximumVersionIsLowerThanTheMinimimVersion = 'The Maximum Version '
|
||||
+'is lower than the Minimim Version.';
|
||||
lisA2PThePackageNameIsInvalidPlaseChooseAnExisting = 'The package name %s%s%'
|
||||
+'s is invalid.%sPlase choose an existing package.';
|
||||
lisA2PThePackageNameIsInvalidPleaseChooseAnExisting = 'The package name %s%s%'
|
||||
+'s is invalid.%sPlease choose an existing package.';
|
||||
lisA2PThePackageHasAlreadyADependencyForThe = 'The package has already a '
|
||||
+'dependency for the package %s%s%s.';
|
||||
lisA2PNoPackageFoundForDependencyPleaseChooseAnExisting = 'No package found '
|
||||
|
@ -2,7 +2,7 @@
|
||||
<CONFIG>
|
||||
<Package>
|
||||
<Name Value="GTK2Interface"/>
|
||||
<Files Count="3">
|
||||
<Files Count="20">
|
||||
<Item1>
|
||||
<Filename Value="interfaces.pas"/>
|
||||
<UnitName Value="Interfaces"/>
|
||||
@ -15,6 +15,74 @@
|
||||
<Filename Value="../gtk/gtkglobals.pp"/>
|
||||
<UnitName Value="GTKGlobals"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<Filename Value="../gtk/gtkmsgqueue.pp"/>
|
||||
<UnitName Value="GtkMsgQueue"/>
|
||||
</Item4>
|
||||
<Item5>
|
||||
<Filename Value="../gtk/gtkcallback.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item5>
|
||||
<Item6>
|
||||
<Filename Value="../gtk/gtkcomboboxcallback.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item6>
|
||||
<Item7>
|
||||
<Filename Value="../gtk/gtkdef.pp"/>
|
||||
<UnitName Value="GTKDef"/>
|
||||
</Item7>
|
||||
<Item8>
|
||||
<Filename Value="../gtk/gtkdragcallback.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item8>
|
||||
<Item9>
|
||||
<Filename Value="../gtk/gtkimages.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item9>
|
||||
<Item10>
|
||||
<Filename Value="../gtk/gtkint.pp"/>
|
||||
<UnitName Value="GtkInt"/>
|
||||
</Item10>
|
||||
<Item11>
|
||||
<Filename Value="../gtk/gtklistsl.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item11>
|
||||
<Item12>
|
||||
<Filename Value="../gtk/gtklistslh.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item12>
|
||||
<Item13>
|
||||
<Filename Value="../gtk/gtklistviewcallback.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item13>
|
||||
<Item14>
|
||||
<Filename Value="../gtk/gtkobject.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item14>
|
||||
<Item15>
|
||||
<Filename Value="../gtk/gtkproc.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item15>
|
||||
<Item16>
|
||||
<Filename Value="../gtk/gtkproc.pp"/>
|
||||
<UnitName Value="GTKProc"/>
|
||||
</Item16>
|
||||
<Item17>
|
||||
<Filename Value="../gtk/gtkwinapi.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item17>
|
||||
<Item18>
|
||||
<Filename Value="../gtk/gtkwinapih.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item18>
|
||||
<Item19>
|
||||
<Filename Value="../gtk/gtkwinapiwindow.pp"/>
|
||||
<UnitName Value="GTKWinapiWindow"/>
|
||||
</Item19>
|
||||
<Item20>
|
||||
<Filename Value="../gtk/keymap.pp"/>
|
||||
<UnitName Value="KeyMap"/>
|
||||
</Item20>
|
||||
</Files>
|
||||
<Type Value="RunAndDesignTime"/>
|
||||
<RequiredPkgs Count="2">
|
||||
@ -36,7 +104,7 @@
|
||||
</Package>
|
||||
<CompilerOptions>
|
||||
<SearchPaths>
|
||||
<OtherUnitFiles Value="./;../gtk/;../../units/"/>
|
||||
<OtherUnitFiles Value="../gtk/;../../units/"/>
|
||||
<UnitOutputDirectory Value="../../units/gtk2"/>
|
||||
<LCLWidgetType Value="gtk"/>
|
||||
</SearchPaths>
|
||||
|
@ -137,10 +137,12 @@ type
|
||||
procedure AddFileBrowseButtonClick(Sender: TObject);
|
||||
procedure AddFileButtonClick(Sender: TObject);
|
||||
procedure AddFilePageResize(Sender: TObject);
|
||||
procedure AddFileShortenButtonClick(Sender: TObject);
|
||||
procedure AddFilesPageResize(Sender: TObject);
|
||||
procedure AddToPackageDlgClose(Sender: TObject; var Action: TCloseAction);
|
||||
procedure AddUnitButtonClick(Sender: TObject);
|
||||
procedure AddUnitFileBrowseButtonClick(Sender: TObject);
|
||||
procedure AddUnitFileShortenButtonClick(Sender: TObject);
|
||||
procedure AddUnitIsVirtualCheckBoxClick(Sender: TObject);
|
||||
procedure AddUnitPageResize(Sender: TObject);
|
||||
procedure AddUnitUpdateButtonClick(Sender: TObject);
|
||||
@ -151,9 +153,11 @@ type
|
||||
procedure CancelNewComponentButtonClick(Sender: TObject);
|
||||
procedure ClassNameEditChange(Sender: TObject);
|
||||
procedure ComponentUnitFileBrowseButtonClick(Sender: TObject);
|
||||
procedure ComponentUnitFileShortenButtonClick(Sender: TObject);
|
||||
procedure FilesAddButtonClick(Sender: TObject);
|
||||
procedure FilesBrowseButtonClick(Sender: TObject);
|
||||
procedure FilesDeleteButtonClick(Sender: TObject);
|
||||
procedure FilesShortenButtonClick(Sender: TObject);
|
||||
procedure NewComponentButtonClick(Sender: TObject);
|
||||
procedure NewComponentPageResize(Sender: TObject);
|
||||
procedure NewDependButtonClick(Sender: TObject);
|
||||
@ -180,6 +184,7 @@ type
|
||||
procedure UpdateAddUnitInfo;
|
||||
procedure UpdateAddFileInfo;
|
||||
function FileNameToPkgFileType(const AFilename: string): TPkgFileType;
|
||||
function SwitchRelativeAbsoluteFilename(const Filename: string): string;
|
||||
public
|
||||
Params: TAddToPkgResult;
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
@ -369,7 +374,7 @@ begin
|
||||
// check packagename
|
||||
if (NewPkgName='') or (not IsValidIdent(NewPkgName)) then begin
|
||||
MessageDlg(lisProjAddInvalidPackagename,
|
||||
Format(lisA2PThePackageNameIsInvalidPlaseChooseAnExisting, ['"',
|
||||
Format(lisA2PThePackageNameIsInvalidPleaseChooseAnExisting, ['"',
|
||||
NewPkgName, '"', #13]),
|
||||
mtError,[mbCancel],0);
|
||||
exit;
|
||||
@ -426,7 +431,8 @@ begin
|
||||
Params.AutoAddLFMFile:=false;
|
||||
Params.AutoAddLRSFile:=false;
|
||||
end;
|
||||
|
||||
LazPackage.LongenFilename(Params.UnitFilename);
|
||||
|
||||
// check filename
|
||||
if not CheckAddingUnitFilename(LazPackage,Params.AddType,
|
||||
OnGetIDEFileInfo,Params.UnitFilename) then exit;
|
||||
@ -454,6 +460,7 @@ procedure TAddToPackageDlg.AddFilePageResize(Sender: TObject);
|
||||
var
|
||||
x: Integer;
|
||||
y: Integer;
|
||||
w: Integer;
|
||||
begin
|
||||
x:=5;
|
||||
y:=5;
|
||||
@ -461,12 +468,16 @@ begin
|
||||
SetBounds(x,y+2,100,Height);
|
||||
inc(x,AddFilenameLabel.Width+5);
|
||||
|
||||
w:=AddFilenameEdit.Height;
|
||||
with AddFilenameEdit do
|
||||
SetBounds(x,y,Parent.ClientWidth-x-30,Height);
|
||||
SetBounds(x,y,Parent.ClientWidth-x-2-w-2-w-5,Height);
|
||||
inc(x,AddFilenameEdit.Width+2);
|
||||
|
||||
with AddFileBrowseButton do
|
||||
SetBounds(x,y,AddFilenameEdit.Height,AddFilenameEdit.Height);
|
||||
SetBounds(x,y,w,w);
|
||||
inc(x,w+2);
|
||||
with AddFileShortenButton do
|
||||
SetBounds(x,y,w,w);
|
||||
x:=5;
|
||||
y:=AddFilenameEdit.Top+AddFilenameEdit.Height+5;
|
||||
|
||||
@ -483,6 +494,13 @@ begin
|
||||
SetBounds(x,y,80,Height);
|
||||
end;
|
||||
|
||||
procedure TAddToPackageDlg.AddFileShortenButtonClick(Sender: TObject);
|
||||
begin
|
||||
if lisA2PchooseAnExistingFile=AddFilenameEdit.Text then exit;
|
||||
AddFilenameEdit.Text:=
|
||||
SwitchRelativeAbsoluteFilename(AddFilenameEdit.Text);
|
||||
end;
|
||||
|
||||
procedure TAddToPackageDlg.AddFilesPageResize(Sender: TObject);
|
||||
var
|
||||
x: Integer;
|
||||
@ -493,21 +511,27 @@ begin
|
||||
with FilesListView do
|
||||
SetBounds(0,0,Parent.ClientWidth,Parent.ClientHeight-45);
|
||||
|
||||
x:=10;
|
||||
x:=5;
|
||||
y:=FilesListView.Height+10;
|
||||
w:=80;
|
||||
w:=100;
|
||||
h:=25;
|
||||
|
||||
with FilesBrowseButton do
|
||||
SetBounds(x,y,w,h);
|
||||
|
||||
inc(x,w+10);
|
||||
inc(x,w+3);
|
||||
|
||||
with FilesShortenButton do
|
||||
SetBounds(x,y,w,h);
|
||||
inc(x,w+3);
|
||||
|
||||
with FilesDeleteButton do
|
||||
SetBounds(x,y,w,h);
|
||||
inc(x,w+3);
|
||||
|
||||
inc(x,w+10);
|
||||
w:=FilesAddButton.Parent.ClientWidth-x-5;
|
||||
if w<20 then w:=20;
|
||||
with FilesAddButton do
|
||||
SetBounds(x,y,Parent.ClientWidth-x-10,h);
|
||||
SetBounds(x,y,w,h);
|
||||
end;
|
||||
|
||||
procedure TAddToPackageDlg.AddFileBrowseButtonClick(Sender: TObject);
|
||||
@ -525,7 +549,7 @@ begin
|
||||
if OpenDialog.Execute then begin
|
||||
AFilename:=CleanAndExpandFilename(OpenDialog.Filename);
|
||||
if FileExists(AFilename) then begin
|
||||
LazPackage.ShortenFilename(AFilename);
|
||||
LazPackage.ShortenFilename(AFilename,true);
|
||||
AddFilenameEdit.Text:=AFilename;
|
||||
UpdateAddFileInfo;
|
||||
end;
|
||||
@ -594,7 +618,7 @@ begin
|
||||
if OpenDialog.Execute then begin
|
||||
AFilename:=CleanAndExpandFilename(OpenDialog.Filename);
|
||||
if FileExists(AFilename) then begin
|
||||
LazPackage.ShortenFilename(AFilename);
|
||||
LazPackage.ShortenFilename(AFilename,true);
|
||||
AddUnitFilenameEdit.Text:=AFilename;
|
||||
UpdateAddUnitInfo;
|
||||
end;
|
||||
@ -605,12 +629,20 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAddToPackageDlg.AddUnitFileShortenButtonClick(Sender: TObject);
|
||||
begin
|
||||
if lisA2PchooseAnExistingFile=AddUnitFilenameEdit.Text then exit;
|
||||
AddUnitFilenameEdit.Text:=
|
||||
SwitchRelativeAbsoluteFilename(AddUnitFilenameEdit.Text);
|
||||
end;
|
||||
|
||||
procedure TAddToPackageDlg.AddUnitIsVirtualCheckBoxClick(Sender: TObject);
|
||||
var
|
||||
VirtualFile: Boolean;
|
||||
begin
|
||||
VirtualFile:=AddUnitIsVirtualCheckBox.Checked;
|
||||
AddUnitFileBrowseButton.Enabled:=not VirtualFile;
|
||||
AddUnitFileShortenButton.Enabled:=not VirtualFile;
|
||||
AddUnitHasRegisterCheckBox.Enabled:=not VirtualFile;
|
||||
AddUnitUpdateButton.Enabled:=not VirtualFile;
|
||||
AddSecondaryFilesCheckBox.Enabled:=not VirtualFile;
|
||||
@ -620,6 +652,7 @@ procedure TAddToPackageDlg.AddUnitPageResize(Sender: TObject);
|
||||
var
|
||||
x: Integer;
|
||||
y: Integer;
|
||||
w: Integer;
|
||||
begin
|
||||
x:=5;
|
||||
y:=5;
|
||||
@ -627,12 +660,17 @@ begin
|
||||
SetBounds(x,y+2,100,Height);
|
||||
inc(x,AddUnitFilenameLabel.Width+5);
|
||||
|
||||
w:=AddUnitFilenameEdit.Height;
|
||||
with AddUnitFilenameEdit do
|
||||
SetBounds(x,y,Parent.ClientWidth-x-30,Height);
|
||||
SetBounds(x,y,Parent.ClientWidth-x-2*w-2-2-5,Height);
|
||||
inc(x,AddUnitFilenameEdit.Width+2);
|
||||
|
||||
with AddUnitFileBrowseButton do
|
||||
SetBounds(x,y,AddUnitFilenameEdit.Height,AddUnitFilenameEdit.Height);
|
||||
SetBounds(x,y,w,w);
|
||||
inc(x,w+2);
|
||||
with AddUnitFileShortenButton do
|
||||
SetBounds(x,y,w,w);
|
||||
|
||||
x:=5;
|
||||
y:=AddUnitFilenameEdit.Top+AddUnitFilenameEdit.Height+5;
|
||||
|
||||
@ -720,7 +758,7 @@ begin
|
||||
if OpenDialog.Execute then begin
|
||||
AFilename:=CleanAndExpandFilename(OpenDialog.Filename);
|
||||
if FilenameIsPascalUnit(AFilename) then begin
|
||||
LazPackage.ShortenFilename(AFilename);
|
||||
LazPackage.ShortenFilename(AFilename,true);
|
||||
ComponentUnitFileEdit.Text:=AFilename;
|
||||
end else begin
|
||||
MessageDlg(lisA2PInvalidFile,
|
||||
@ -734,6 +772,13 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAddToPackageDlg.ComponentUnitFileShortenButtonClick(Sender: TObject);
|
||||
begin
|
||||
if ''=ComponentUnitFileEdit.Text then exit;
|
||||
ComponentUnitFileEdit.Text:=
|
||||
SwitchRelativeAbsoluteFilename(ComponentUnitFileEdit.Text);
|
||||
end;
|
||||
|
||||
procedure TAddToPackageDlg.FilesAddButtonClick(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
@ -830,7 +875,7 @@ begin
|
||||
for i:=0 to OpenDialog.Files.COunt-1 do begin
|
||||
AFilename:=CleanAndExpandFilename(OpenDialog.Files[i]);
|
||||
if FileExists(AFilename) then begin
|
||||
LazPackage.ShortenFilename(AFilename);
|
||||
LazPackage.ShortenFilename(AFilename,true);
|
||||
NewListItem:=FilesListView.Items.Add;
|
||||
NewListItem.Caption:=AFilename;
|
||||
NewPgkFileType:=FileNameToPkgFileType(AFilename);
|
||||
@ -853,6 +898,26 @@ begin
|
||||
FilesListView.Items.Delete(i);
|
||||
end;
|
||||
|
||||
procedure TAddToPackageDlg.FilesShortenButtonClick(Sender: TObject);
|
||||
var
|
||||
SwitchToAbsolute: Boolean;
|
||||
i: Integer;
|
||||
Filename: String;
|
||||
begin
|
||||
if FilesListView.Items.Count=0 then exit;
|
||||
if (not LazPackage.HasDirectory)
|
||||
or (not FilenameIsAbsolute(LazPackage.Directory)) then exit;
|
||||
SwitchToAbsolute:=not FilenameIsAbsolute(FilesListView.Items[0].Caption);
|
||||
for i:=0 to FilesListView.Items.Count-1 do begin
|
||||
Filename:=FilesListView.Items[i].Caption;
|
||||
if SwitchToAbsolute then
|
||||
Filename:=CreateAbsolutePath(Filename,LazPackage.Directory)
|
||||
else
|
||||
Filename:=CreateRelativePath(Filename,LazPackage.Directory);
|
||||
FilesListView.Items[i].Caption:=Filename;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAddToPackageDlg.NewComponentButtonClick(Sender: TObject);
|
||||
var
|
||||
PkgFile: TPkgFile;
|
||||
@ -974,6 +1039,7 @@ procedure TAddToPackageDlg.NewComponentPageResize(Sender: TObject);
|
||||
var
|
||||
x: Integer;
|
||||
y: Integer;
|
||||
w: Integer;
|
||||
begin
|
||||
x:=5;
|
||||
y:=5;
|
||||
@ -1013,12 +1079,16 @@ begin
|
||||
SetBounds(x,y+2,100,Height);
|
||||
inc(x,ComponentUnitFileLabel.Width+5);
|
||||
|
||||
w:=ComponentUnitFileEdit.Height;
|
||||
with ComponentUnitFileEdit do
|
||||
SetBounds(x,y,Parent.ClientWidth-x-Height-5,Height);
|
||||
SetBounds(x,y,Parent.ClientWidth-x-2-w-2-w-5,Height);
|
||||
inc(x,ComponentUnitFileEdit.Width+2);
|
||||
|
||||
with ComponentUnitFileBrowseButton do
|
||||
SetBounds(x,y,ComponentUnitFileEdit.Height,ComponentUnitFileEdit.Height);
|
||||
SetBounds(x,y,w,w);
|
||||
inc(x,w+2);
|
||||
with ComponentUnitFileShortenButton do
|
||||
SetBounds(x,y,w,w);
|
||||
x:=5;
|
||||
inc(y,ComponentUnitFileEdit.Height+5);
|
||||
|
||||
@ -1189,6 +1259,14 @@ begin
|
||||
OnClick:=@AddUnitFileBrowseButtonClick;
|
||||
end;
|
||||
|
||||
AddUnitFileShortenButton:=TButton.Create(Self);
|
||||
with AddUnitFileShortenButton do begin
|
||||
Name:='AddUnitFileShortenButton';
|
||||
Parent:=AddUnitPage;
|
||||
Caption:='<>';
|
||||
OnClick:=@AddUnitFileShortenButtonClick;
|
||||
end;
|
||||
|
||||
AddUnitSrcNameLabel:=TLabel.Create(Self);
|
||||
with AddUnitSrcNameLabel do begin
|
||||
Name:='AddUnitSrcNameLabel';
|
||||
@ -1328,6 +1406,14 @@ begin
|
||||
OnClick:=@ComponentUnitFileBrowseButtonClick;
|
||||
end;
|
||||
|
||||
ComponentUnitFileShortenButton:=TButton.Create(Self);
|
||||
with ComponentUnitFileShortenButton do begin
|
||||
Name:='ComponentUnitFileShortenButton';
|
||||
Parent:=NewComponentPage;
|
||||
Caption:='<>';
|
||||
OnClick:=@ComponentUnitFileShortenButtonClick;
|
||||
end;
|
||||
|
||||
ComponentUnitNameLabel:=TLabel.Create(Self);
|
||||
with ComponentUnitNameLabel do begin
|
||||
Name:='ComponentUnitNameLabel';
|
||||
@ -1446,6 +1532,14 @@ begin
|
||||
OnClick:=@AddFileBrowseButtonClick;
|
||||
end;
|
||||
|
||||
AddFileShortenButton:=TButton.Create(Self);
|
||||
with AddFileShortenButton do begin
|
||||
Name:='AddFileShortenButton';
|
||||
Parent:=AddFilePage;
|
||||
Caption:='<>';
|
||||
OnClick:=@AddFileShortenButtonClick;
|
||||
end;
|
||||
|
||||
AddFileTypeRadioGroup:=TRadioGroup.Create(Self);
|
||||
with AddFileTypeRadioGroup do begin
|
||||
Name:='AddFileTypeRadioGroup';
|
||||
@ -1503,6 +1597,14 @@ begin
|
||||
OnClick:=@FilesBrowseButtonClick;
|
||||
end;
|
||||
|
||||
FilesShortenButton:=TButton.Create(Self);
|
||||
with FilesShortenButton do begin
|
||||
Name:='FilesShortenButton';
|
||||
Parent:=AddFilesPage;
|
||||
Caption:=lisA2PSwitchPaths;
|
||||
OnClick:=@FilesShortenButtonClick;
|
||||
end;
|
||||
|
||||
FilesDeleteButton:=TButton.Create(Self);
|
||||
with FilesDeleteButton do begin
|
||||
Name:='FilesDeleteButton';
|
||||
@ -1640,6 +1742,18 @@ begin
|
||||
Result:=pftBinary;
|
||||
end;
|
||||
|
||||
function TAddToPackageDlg.SwitchRelativeAbsoluteFilename(const Filename: string
|
||||
): string;
|
||||
begin
|
||||
Result:=Filename;
|
||||
if (not LazPackage.HasDirectory)
|
||||
or (not FilenameIsAbsolute(LazPackage.Directory)) then exit;
|
||||
if FilenameIsAbsolute(Filename) then
|
||||
Result:=TrimFilename(CreateRelativePath(Filename,LazPackage.Directory))
|
||||
else
|
||||
Result:=TrimFilename(CreateAbsolutePath(Filename,LazPackage.Directory));
|
||||
end;
|
||||
|
||||
constructor TAddToPackageDlg.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
|
@ -159,12 +159,13 @@ type
|
||||
procedure SaveToXMLConfig(XMLConfig: TXMLConfig; const Path: string);
|
||||
procedure ConsistencyCheck;
|
||||
function IsVirtual: boolean;
|
||||
function GetShortFilename(RelativePaths: boolean): string;
|
||||
function GetShortFilename(UseUp: boolean): string;
|
||||
function ComponentCount: integer;
|
||||
procedure AddPkgComponent(APkgComponent: TPkgComponent);
|
||||
procedure RemovePkgComponent(APkgComponent: TPkgComponent);
|
||||
function GetResolvedFilename: string;
|
||||
function HasRegisteredPlugins: boolean;
|
||||
function MakeSense: boolean;
|
||||
public
|
||||
property Removed: boolean read FRemoved write SetRemoved;
|
||||
property Directory: string read FDirectory;
|
||||
@ -461,6 +462,8 @@ type
|
||||
FFirstRequiredDependency: TPkgDependency;
|
||||
FFirstUsedByDependency: TPkgDependency;
|
||||
FFlags: TLazPackageFlags;
|
||||
FHasDirectory: boolean;
|
||||
FHasStaticDirectory: boolean;
|
||||
FHoldPackageCount: integer;
|
||||
FIconFile: string;
|
||||
FInstalled: TPackageInstallType;
|
||||
@ -535,6 +538,7 @@ type
|
||||
// paths, define templates
|
||||
function IsVirtual: boolean;
|
||||
function HasDirectory: boolean;
|
||||
function HasStaticDirectory: boolean;
|
||||
function GetResolvedFilename: string;
|
||||
function GetSourceDirs(WithPkgDir, WithoutOutputDir: boolean): string;
|
||||
procedure GetInheritedCompilerOptions(var OptionsList: TList);
|
||||
@ -547,7 +551,7 @@ type
|
||||
function GetIncludePath(RelativeToBaseDir: boolean): string;
|
||||
function NeedsDefineTemplates: boolean;
|
||||
// files
|
||||
procedure ShortenFilename(var ExpandedFilename: string);
|
||||
procedure ShortenFilename(var ExpandedFilename: string; UseUp: boolean);
|
||||
procedure LongenFilename(var AFilename: string);
|
||||
function FindPkgFile(const AFilename: string;
|
||||
ResolveLinks, IgnoreRemoved: boolean): TPkgFile;
|
||||
@ -1112,6 +1116,11 @@ begin
|
||||
Result:=ComponentCount>0;
|
||||
end;
|
||||
|
||||
function TPkgFile.MakeSense: boolean;
|
||||
begin
|
||||
Result:=Filename<>'';
|
||||
end;
|
||||
|
||||
constructor TPkgFile.Create(ThePackage: TLazPackage);
|
||||
begin
|
||||
Clear;
|
||||
@ -1155,7 +1164,7 @@ var
|
||||
TmpFilename: String;
|
||||
begin
|
||||
TmpFilename:=Filename;
|
||||
FPackage.ShortenFilename(TmpFilename);
|
||||
FPackage.ShortenFilename(TmpFilename,true);
|
||||
XMLConfig.SetDeleteValue(Path+'Filename/Value',TmpFilename,'');
|
||||
XMLConfig.SetDeleteValue(Path+'HasRegisterProc/Value',HasRegisterProc,
|
||||
false);
|
||||
@ -1177,13 +1186,10 @@ begin
|
||||
Result:=FilenameIsAbsolute(FFilename);
|
||||
end;
|
||||
|
||||
function TPkgFile.GetShortFilename(RelativePaths: boolean): string;
|
||||
function TPkgFile.GetShortFilename(UseUp: boolean): string;
|
||||
begin
|
||||
Result:=FFilename;
|
||||
LazPackage.ShortenFilename(Result);
|
||||
if RelativePaths and FilenameIsAbsolute(Result)
|
||||
and LazPackage.HasDirectory then
|
||||
Result:=CreateRelativePath(Result,LazPackage.Directory);
|
||||
LazPackage.ShortenFilename(Result,UseUp);
|
||||
end;
|
||||
|
||||
function TPkgFile.ComponentCount: integer;
|
||||
@ -1729,6 +1735,8 @@ begin
|
||||
FDirectory:=FFilename
|
||||
else
|
||||
FDirectory:=ExtractFilePath(FFilename);
|
||||
FHasDirectory:=(FDirectory<>'') and (FDirectory[length(FDirectory)]=PathDelim);
|
||||
FHasStaticDirectory:=FHasDirectory and FilenameIsAbsolute(FDirectory);
|
||||
FUsageOptions.BaseDirectory:=FDirectory;
|
||||
FCompilerOptions.BaseDirectory:=FDirectory;
|
||||
Modified:=true;
|
||||
@ -1887,6 +1895,8 @@ begin
|
||||
FCompilerOptions.Clear;
|
||||
FDescription:='';
|
||||
FDirectory:='';
|
||||
FHasDirectory:=false;
|
||||
FHasStaticDirectory:=false;
|
||||
FVersion.Clear;
|
||||
FFilename:='';
|
||||
for i:=FRemovedFiles.Count-1 downto 0 do RemovedFiles[i].Free;
|
||||
@ -1970,7 +1980,10 @@ var
|
||||
PkgFile:=TPkgFile.Create(Self);
|
||||
PkgFile.LoadFromXMLConfig(XMLConfig,ThePath+'Item'+IntToStr(i+1)+'/',
|
||||
FileVersion,PathDelimChanged);
|
||||
List.Add(PkgFile);
|
||||
if PkgFile.MakeSense then
|
||||
List.Add(PkgFile)
|
||||
else
|
||||
PkgFile.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2073,7 +2086,12 @@ end;
|
||||
|
||||
function TLazPackage.HasDirectory: boolean;
|
||||
begin
|
||||
Result:=(FDirectory<>'') and (FDirectory[length(FDirectory)]=PathDelim);
|
||||
Result:=FHasDirectory;
|
||||
end;
|
||||
|
||||
function TLazPackage.HasStaticDirectory: boolean;
|
||||
begin
|
||||
Result:=FHasStaticDirectory;
|
||||
end;
|
||||
|
||||
procedure TLazPackage.CheckInnerDependencies;
|
||||
@ -2085,21 +2103,25 @@ function TLazPackage.MakeSense: boolean;
|
||||
begin
|
||||
Result:=false;
|
||||
if (Name='') or (not IsValidIdent(Name)) then exit;
|
||||
|
||||
Result:=true;
|
||||
end;
|
||||
|
||||
procedure TLazPackage.ShortenFilename(var ExpandedFilename: string);
|
||||
procedure TLazPackage.ShortenFilename(var ExpandedFilename: string;
|
||||
UseUp: boolean);
|
||||
var
|
||||
PkgDir: String;
|
||||
CurPath: String;
|
||||
begin
|
||||
if not HasDirectory then exit;
|
||||
if (not HasDirectory) then exit;
|
||||
PkgDir:=FDirectory;
|
||||
CurPath:=copy(ExtractFilePath(ExpandedFilename),1,length(PkgDir));
|
||||
if CompareFilenames(PkgDir,CurPath)=0 then begin
|
||||
ExpandedFilename:=copy(ExpandedFilename,length(CurPath)+1,
|
||||
length(ExpandedFilename)-length(CurPath));
|
||||
if HasStaticDirectory and UseUp then
|
||||
ExpandedFilename:=CreateRelativePath(ExpandedFilename,PkgDir)
|
||||
else begin
|
||||
CurPath:=copy(ExtractFilePath(ExpandedFilename),1,length(PkgDir));
|
||||
if CompareFilenames(PkgDir,CurPath)=0 then begin
|
||||
ExpandedFilename:=copy(ExpandedFilename,length(CurPath)+1,
|
||||
length(ExpandedFilename)-length(CurPath));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -1707,18 +1707,18 @@ begin
|
||||
// check if directory is already in the unit path of the package
|
||||
NewDirectory:=ExtractFilePath(AnUnitFilename);
|
||||
ShortDirectory:=NewDirectory;
|
||||
LazPackage.ShortenFilename(ShortDirectory);
|
||||
LazPackage.ShortenFilename(ShortDirectory,false);
|
||||
if ShortDirectory='' then exit;
|
||||
UnitPath:=LazPackage.GetUnitPath(false);
|
||||
UnitPathPos:=SearchDirectoryInSearchPath(UnitPath,NewDirectory,1);
|
||||
UnitPath:=LazPackage.GetUnitPath(true);
|
||||
UnitPathPos:=SearchDirectoryInSearchPath(UnitPath,ShortDirectory,1);
|
||||
IncPathPos:=1;
|
||||
if AnIncludeFile<>'' then begin
|
||||
NewIncDirectory:=ExtractFilePath(AnIncludeFile);
|
||||
ShortIncDirectory:=NewIncDirectory;
|
||||
LazPackage.ShortenFilename(ShortIncDirectory);
|
||||
LazPackage.ShortenFilename(ShortIncDirectory,false);
|
||||
if ShortIncDirectory<>'' then begin
|
||||
IncPath:=LazPackage.GetIncludePath(false);
|
||||
IncPathPos:=SearchDirectoryInSearchPath(IncPath,NewIncDirectory,1);
|
||||
IncPath:=LazPackage.GetIncludePath(true);
|
||||
IncPathPos:=SearchDirectoryInSearchPath(IncPath,ShortIncDirectory,1);
|
||||
end;
|
||||
end;
|
||||
if UnitPathPos<1 then begin
|
||||
|
Loading…
Reference in New Issue
Block a user