mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 15:49:26 +02:00
* more file handling from shortstring to tcmdstr
git-svn-id: trunk@6595 -
This commit is contained in:
parent
06961fe250
commit
90ea73a90b
@ -51,18 +51,18 @@ interface
|
||||
private
|
||||
FDirectoryEntries : TFPHashList;
|
||||
public
|
||||
constructor Create(AList:TFPHashObjectList;const AName:string);
|
||||
constructor Create(AList:TFPHashObjectList;const AName:TCmdStr);
|
||||
destructor destroy;override;
|
||||
procedure Reload;
|
||||
function FileExists(const AName:string):boolean;
|
||||
function DirectoryExists(const AName:string):boolean;
|
||||
function FileExists(const AName:TCmdStr):boolean;
|
||||
function DirectoryExists(const AName:TCmdStr):boolean;
|
||||
property DirectoryEntries:TFPHashList read FDirectoryEntries;
|
||||
end;
|
||||
|
||||
TCachedSearchRec = record
|
||||
Name : string;
|
||||
Name : TCmdStr;
|
||||
Attr : byte;
|
||||
Pattern : string;
|
||||
Pattern : TCmdStr;
|
||||
CachedDir : TCachedDirectory;
|
||||
EntryIndex : longint;
|
||||
end;
|
||||
@ -70,13 +70,13 @@ interface
|
||||
TDirectoryCache = class
|
||||
private
|
||||
FDirectories : TFPHashObjectList;
|
||||
function GetDirectory(const ADir:string):TCachedDirectory;
|
||||
function GetDirectory(const ADir:TCmdStr):TCachedDirectory;
|
||||
public
|
||||
constructor Create;
|
||||
destructor destroy;override;
|
||||
function FileExists(const AName:string):boolean;
|
||||
function DirectoryExists(const AName:string):boolean;
|
||||
function FindFirst(const APattern:string;var Res:TCachedSearchRec):boolean;
|
||||
function FileExists(const AName:TCmdStr):boolean;
|
||||
function DirectoryExists(const AName:TCmdStr):boolean;
|
||||
function FindFirst(const APattern:TCmdStr;var Res:TCachedSearchRec):boolean;
|
||||
function FindNext(var Res:TCachedSearchRec):boolean;
|
||||
function FindClose(var Res:TCachedSearchRec):boolean;
|
||||
end;
|
||||
@ -88,26 +88,26 @@ interface
|
||||
function FindFile(const f : TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
|
||||
end;
|
||||
|
||||
function bstoslash(const s : string) : string;
|
||||
function bstoslash(const s : TCmdStr) : TCmdStr;
|
||||
{Gives the absolute path to the current directory}
|
||||
function GetCurrentDir:string;
|
||||
function GetCurrentDir:TCmdStr;
|
||||
{Gives the relative path to the current directory,
|
||||
with a trailing dir separator. E. g. on unix ./ }
|
||||
function CurDirRelPath(systeminfo: tsysteminfo): string;
|
||||
function path_absolute(const s : string) : boolean;
|
||||
Function PathExists (const F : String;allowcache:boolean) : Boolean;
|
||||
Function FileExists (const F : String;allowcache:boolean) : Boolean;
|
||||
function CurDirRelPath(systeminfo: tsysteminfo): TCmdStr;
|
||||
function path_absolute(const s : TCmdStr) : boolean;
|
||||
Function PathExists (const F : TCmdStr;allowcache:boolean) : Boolean;
|
||||
Function FileExists (const F : TCmdStr;allowcache:boolean) : Boolean;
|
||||
function FileExistsNonCase(const path,fn:TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
|
||||
Function RemoveDir(d:string):boolean;
|
||||
Function FixPath(s:string;allowdot:boolean):string;
|
||||
function FixFileName(const s:string):string;
|
||||
function TargetFixPath(s:string;allowdot:boolean):string;
|
||||
function TargetFixFileName(const s:string):string;
|
||||
procedure SplitBinCmd(const s:string;var bstr: String;var cstr:TCmdStr);
|
||||
Function RemoveDir(d:TCmdStr):boolean;
|
||||
Function FixPath(s:TCmdStr;allowdot:boolean):TCmdStr;
|
||||
function FixFileName(const s:TCmdStr):TCmdStr;
|
||||
function TargetFixPath(s:TCmdStr;allowdot:boolean):TCmdStr;
|
||||
function TargetFixFileName(const s:TCmdStr):TCmdStr;
|
||||
procedure SplitBinCmd(const s:TCmdStr;var bstr: TCmdStr;var cstr:TCmdStr);
|
||||
function FindFile(const f : TCmdStr;path : TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
|
||||
function FindFilePchar(const f : TCmdStr;path : pchar;allowcache:boolean;var foundfile:TCmdStr):boolean;
|
||||
function FindExe(const bin:TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
|
||||
function GetShortName(const n:string):string;
|
||||
function GetShortName(const n:TCmdStr):TCmdStr;
|
||||
|
||||
procedure InitFileUtils;
|
||||
procedure DoneFileUtils;
|
||||
@ -127,7 +127,7 @@ implementation
|
||||
TCachedDirectory
|
||||
****************************************************************************}
|
||||
|
||||
constructor TCachedDirectory.create(AList:TFPHashObjectList;const AName:string);
|
||||
constructor TCachedDirectory.create(AList:TFPHashObjectList;const AName:TCmdStr);
|
||||
begin
|
||||
inherited create(AList,AName);
|
||||
FDirectoryEntries:=TFPHashList.Create;
|
||||
@ -164,7 +164,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function TCachedDirectory.FileExists(const AName:string):boolean;
|
||||
function TCachedDirectory.FileExists(const AName:TCmdStr):boolean;
|
||||
var
|
||||
Attr : Longint;
|
||||
begin
|
||||
@ -179,7 +179,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function TCachedDirectory.DirectoryExists(const AName:string):boolean;
|
||||
function TCachedDirectory.DirectoryExists(const AName:TCmdStr):boolean;
|
||||
var
|
||||
Attr : Longint;
|
||||
begin
|
||||
@ -212,10 +212,10 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function TDirectoryCache.GetDirectory(const ADir:string):TCachedDirectory;
|
||||
function TDirectoryCache.GetDirectory(const ADir:TCmdStr):TCachedDirectory;
|
||||
var
|
||||
CachedDir : TCachedDirectory;
|
||||
DirName : string;
|
||||
DirName : TCmdStr;
|
||||
begin
|
||||
if ADir='' then
|
||||
DirName:='.'
|
||||
@ -231,7 +231,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function TDirectoryCache.FileExists(const AName:string):boolean;
|
||||
function TDirectoryCache.FileExists(const AName:TCmdStr):boolean;
|
||||
var
|
||||
CachedDir : TCachedDirectory;
|
||||
begin
|
||||
@ -242,7 +242,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function TDirectoryCache.DirectoryExists(const AName:string):boolean;
|
||||
function TDirectoryCache.DirectoryExists(const AName:TCmdStr):boolean;
|
||||
var
|
||||
CachedDir : TCachedDirectory;
|
||||
begin
|
||||
@ -253,7 +253,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function TDirectoryCache.FindFirst(const APattern:string;var Res:TCachedSearchRec):boolean;
|
||||
function TDirectoryCache.FindFirst(const APattern:TCmdStr;var Res:TCachedSearchRec):boolean;
|
||||
begin
|
||||
Res.Pattern:=ExtractFileName(APattern);
|
||||
Res.CachedDir:=GetDirectory(ExtractFilePath(APattern));
|
||||
@ -290,26 +290,26 @@ implementation
|
||||
Utils
|
||||
****************************************************************************}
|
||||
|
||||
function bstoslash(const s : string) : string;
|
||||
function bstoslash(const s : TCmdStr) : TCmdStr;
|
||||
{
|
||||
return string s with all \ changed into /
|
||||
return TCmdStr s with all \ changed into /
|
||||
}
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
setlength(bstoslash,length(s));
|
||||
for i:=1to length(s) do
|
||||
if s[i]='\' then
|
||||
bstoslash[i]:='/'
|
||||
else
|
||||
bstoslash[i]:=s[i];
|
||||
bstoslash[0]:=s[0];
|
||||
end;
|
||||
|
||||
|
||||
{Gives the absolute path to the current directory}
|
||||
var
|
||||
CachedCurrentDir : string;
|
||||
function GetCurrentDir:string;
|
||||
CachedCurrentDir : TCmdStr;
|
||||
function GetCurrentDir:TCmdStr;
|
||||
begin
|
||||
if CachedCurrentDir='' then
|
||||
begin
|
||||
@ -321,7 +321,7 @@ implementation
|
||||
|
||||
{Gives the relative path to the current directory,
|
||||
with a trailing dir separator. E. g. on unix ./ }
|
||||
function CurDirRelPath(systeminfo: tsysteminfo): string;
|
||||
function CurDirRelPath(systeminfo: tsysteminfo): TCmdStr;
|
||||
|
||||
begin
|
||||
if systeminfo.system <> system_powerpc_macos then
|
||||
@ -331,7 +331,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function path_absolute(const s : string) : boolean;
|
||||
function path_absolute(const s : TCmdStr) : boolean;
|
||||
{
|
||||
is path s an absolute path?
|
||||
}
|
||||
@ -352,7 +352,7 @@ implementation
|
||||
{$endif unix}
|
||||
end;
|
||||
|
||||
Function FileExists ( Const F : String;allowcache:boolean) : Boolean;
|
||||
Function FileExists ( Const F : TCmdStr;allowcache:boolean) : Boolean;
|
||||
begin
|
||||
{$ifdef usedircache}
|
||||
if allowcache then
|
||||
@ -372,7 +372,7 @@ implementation
|
||||
|
||||
function FileExistsNonCase(const path,fn:TCmdStr;allowcache:boolean;var foundfile:TCmdStr):boolean;
|
||||
var
|
||||
fn2 : string;
|
||||
fn2 : TCmdStr;
|
||||
begin
|
||||
result:=false;
|
||||
if tf_files_case_sensitive in source_info.flags then
|
||||
@ -439,10 +439,10 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
Function PathExists (const F : String;allowcache:boolean) : Boolean;
|
||||
Function PathExists (const F : TCmdStr;allowcache:boolean) : Boolean;
|
||||
Var
|
||||
i: longint;
|
||||
hs : string;
|
||||
hs : TCmdStr;
|
||||
begin
|
||||
if F = '' then
|
||||
begin
|
||||
@ -463,7 +463,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
Function RemoveDir(d:string):boolean;
|
||||
Function RemoveDir(d:TCmdStr):boolean;
|
||||
begin
|
||||
if d[length(d)]=source_info.DirSep then
|
||||
Delete(d,length(d),1);
|
||||
@ -474,7 +474,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
Function FixPath(s:string;allowdot:boolean):string;
|
||||
Function FixPath(s:TCmdStr;allowdot:boolean):TCmdStr;
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
@ -500,9 +500,9 @@ implementation
|
||||
{Actually the version in macutils.pp could be used,
|
||||
but that would not work for crosscompiling, so this is a slightly modified
|
||||
version of it.}
|
||||
function TranslatePathToMac (const path: string; mpw: Boolean): string;
|
||||
function TranslatePathToMac (const path: TCmdStr; mpw: Boolean): TCmdStr;
|
||||
|
||||
function GetVolumeIdentifier: string;
|
||||
function GetVolumeIdentifier: TCmdStr;
|
||||
|
||||
begin
|
||||
GetVolumeIdentifier := '{Boot}'
|
||||
@ -623,7 +623,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function FixFileName(const s:string):string;
|
||||
function FixFileName(const s:TCmdStr):TCmdStr;
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
@ -633,6 +633,7 @@ implementation
|
||||
if (tf_files_case_aware in source_info.flags) or
|
||||
(tf_files_case_sensitive in source_info.flags) then
|
||||
begin
|
||||
setlength(FixFileName,length(s));
|
||||
for i:=1 to length(s) do
|
||||
begin
|
||||
case s[i] of
|
||||
@ -642,10 +643,10 @@ implementation
|
||||
FixFileName[i]:=s[i];
|
||||
end;
|
||||
end;
|
||||
FixFileName[0]:=s[0];
|
||||
end
|
||||
else
|
||||
begin
|
||||
setlength(FixFileName,length(s));
|
||||
for i:=1 to length(s) do
|
||||
begin
|
||||
case s[i] of
|
||||
@ -657,12 +658,11 @@ implementation
|
||||
FixFileName[i]:=s[i];
|
||||
end;
|
||||
end;
|
||||
FixFileName[0]:=s[0];
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Function TargetFixPath(s:string;allowdot:boolean):string;
|
||||
Function TargetFixPath(s:TCmdStr;allowdot:boolean):TCmdStr;
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
@ -686,7 +686,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function TargetFixFileName(const s:string):string;
|
||||
function TargetFixFileName(const s:TCmdStr):TCmdStr;
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
@ -696,6 +696,7 @@ implementation
|
||||
if (tf_files_case_aware in target_info.flags) or
|
||||
(tf_files_case_sensitive in target_info.flags) then
|
||||
begin
|
||||
setlength(TargetFixFileName,length(s));
|
||||
for i:=1 to length(s) do
|
||||
begin
|
||||
case s[i] of
|
||||
@ -705,10 +706,10 @@ implementation
|
||||
TargetFixFileName[i]:=s[i];
|
||||
end;
|
||||
end;
|
||||
TargetFixFileName[0]:=s[0];
|
||||
end
|
||||
else
|
||||
begin
|
||||
setlength(TargetFixFileName,length(s));
|
||||
for i:=1 to length(s) do
|
||||
begin
|
||||
case s[i] of
|
||||
@ -720,12 +721,11 @@ implementation
|
||||
TargetFixFileName[i]:=s[i];
|
||||
end;
|
||||
end;
|
||||
TargetFixFileName[0]:=s[0];
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure SplitBinCmd(const s:string;var bstr:String;var cstr:TCmdStr);
|
||||
procedure SplitBinCmd(const s:TCmdStr;var bstr:TCmdStr;var cstr:TCmdStr);
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
@ -897,7 +897,7 @@ implementation
|
||||
|
||||
procedure TSearchPathList.AddList(list:TSearchPathList;addfirst:boolean);
|
||||
var
|
||||
s : string;
|
||||
s : TCmdStr;
|
||||
hl : TSearchPathList;
|
||||
hp,hp2 : TCmdStrListItem;
|
||||
begin
|
||||
@ -1002,7 +1002,7 @@ implementation
|
||||
startpc:=pc;
|
||||
while (pc^<>sepch) and (pc^<>';') and (pc^<>#0) do
|
||||
inc(pc);
|
||||
SetLength(singlepathstring, pc-startpc);
|
||||
SetLength(singlepathstring, pc-startpc);
|
||||
move(startpc^,singlepathstring[1],pc-startpc);
|
||||
singlepathstring:=FixPath(ExpandFileName(singlepathstring),false);
|
||||
result:=FileExistsNonCase(singlepathstring,f,allowcache,FoundFile);
|
||||
@ -1037,15 +1037,15 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function GetShortName(const n:string):string;
|
||||
function GetShortName(const n:TCmdStr):TCmdStr;
|
||||
{$ifdef win32}
|
||||
var
|
||||
hs,hs2 : string;
|
||||
hs,hs2 : TCmdStr;
|
||||
i : longint;
|
||||
{$endif}
|
||||
{$if defined(go32v2) or defined(watcom)}
|
||||
var
|
||||
hs : string;
|
||||
hs : TCmdStr;
|
||||
{$endif}
|
||||
begin
|
||||
GetShortName:=n;
|
||||
|
@ -55,12 +55,12 @@ interface
|
||||
Constructor Create;virtual;
|
||||
Destructor Destroy;override;
|
||||
procedure AddModuleFiles(hp:tmodule);
|
||||
Procedure AddObject(const S,unitpath : String;isunit:boolean);
|
||||
Procedure AddStaticLibrary(const S : String);
|
||||
Procedure AddSharedLibrary(S : String);
|
||||
Procedure AddStaticCLibrary(const S : String);
|
||||
Procedure AddSharedCLibrary(S : String);
|
||||
procedure AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);virtual;
|
||||
Procedure AddObject(const S,unitpath : TCmdStr;isunit:boolean);
|
||||
Procedure AddStaticLibrary(const S : TCmdStr);
|
||||
Procedure AddSharedLibrary(S : TCmdStr);
|
||||
Procedure AddStaticCLibrary(const S : TCmdStr);
|
||||
Procedure AddSharedCLibrary(S : TCmdStr);
|
||||
procedure AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);virtual;
|
||||
Procedure InitSysInitUnitName;virtual;
|
||||
Function MakeExecutable:boolean;virtual;
|
||||
Function MakeSharedLibrary:boolean;virtual;
|
||||
@ -75,7 +75,7 @@ interface
|
||||
Info : TLinkerInfo;
|
||||
Constructor Create;override;
|
||||
Destructor Destroy;override;
|
||||
Function FindUtil(const s:string):String;
|
||||
Function FindUtil(const s:TCmdStr):TCmdStr;
|
||||
Function DoExec(const command:TCmdStr; para:TCmdStr;showinfo,useshell:boolean):boolean;
|
||||
procedure SetDefaultInfo;virtual;
|
||||
Function MakeStaticLibrary:boolean;override;
|
||||
@ -88,13 +88,13 @@ interface
|
||||
{ Libraries }
|
||||
FStaticLibraryList : TFPHashObjectList;
|
||||
FImportLibraryList : TFPHashObjectList;
|
||||
procedure Load_ReadObject(const para:string);
|
||||
procedure Load_ReadStaticLibrary(const para:string);
|
||||
procedure Load_ReadObject(const para:TCmdStr);
|
||||
procedure Load_ReadStaticLibrary(const para:TCmdStr);
|
||||
procedure ParseScript_Load;
|
||||
procedure ParseScript_Order;
|
||||
procedure ParseScript_CalcPos;
|
||||
procedure PrintLinkerScript;
|
||||
function RunLinkScript(const outputname:string):boolean;
|
||||
function RunLinkScript(const outputname:TCmdStr):boolean;
|
||||
protected
|
||||
property CObjInput:TObjInputClass read FCObjInput write FCObjInput;
|
||||
property CExeOutput:TExeOutputClass read FCExeOutput write FCExeOutput;
|
||||
@ -108,15 +108,15 @@ interface
|
||||
Destructor Destroy;override;
|
||||
Function MakeExecutable:boolean;override;
|
||||
Function MakeSharedLibrary:boolean;override;
|
||||
procedure AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);override;
|
||||
procedure AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);override;
|
||||
end;
|
||||
|
||||
var
|
||||
Linker : TLinker;
|
||||
|
||||
function FindObjectFile(s : string;const unitpath:string;isunit:boolean) : string;
|
||||
function FindLibraryFile(s:string;const prefix,ext:string;var foundfile : TCmdStr) : boolean;
|
||||
function FindDLL(const s:string;var founddll:TCmdStr):boolean;
|
||||
function FindObjectFile(s : TCmdStr;const unitpath:TCmdStr;isunit:boolean) : TCmdStr;
|
||||
function FindLibraryFile(s:TCmdStr;const prefix,ext:TCmdStr;var foundfile : TCmdStr) : boolean;
|
||||
function FindDLL(const s:TCmdStr;var founddll:TCmdStr):boolean;
|
||||
|
||||
procedure InitLinker;
|
||||
procedure DoneLinker;
|
||||
@ -138,7 +138,7 @@ Implementation
|
||||
*****************************************************************************}
|
||||
|
||||
{ searches an object file }
|
||||
function FindObjectFile(s:string;const unitpath:string;isunit:boolean) : string;
|
||||
function FindObjectFile(s:TCmdStr;const unitpath:TCmdStr;isunit:boolean) : TCmdStr;
|
||||
var
|
||||
found : boolean;
|
||||
foundfile : TCmdStr;
|
||||
@ -206,9 +206,9 @@ Implementation
|
||||
|
||||
|
||||
{ searches a (windows) DLL file }
|
||||
function FindDLL(const s:string;var founddll:TCmdStr):boolean;
|
||||
function FindDLL(const s:TCmdStr;var founddll:TCmdStr):boolean;
|
||||
var
|
||||
sysdir : string;
|
||||
sysdir : TCmdStr;
|
||||
Found : boolean;
|
||||
begin
|
||||
Found:=false;
|
||||
@ -234,10 +234,10 @@ Implementation
|
||||
|
||||
|
||||
{ searches an library file }
|
||||
function FindLibraryFile(s:string;const prefix,ext:string;var foundfile : TCmdStr) : boolean;
|
||||
function FindLibraryFile(s:TCmdStr;const prefix,ext:TCmdStr;var foundfile : TCmdStr) : boolean;
|
||||
var
|
||||
found : boolean;
|
||||
paths : string;
|
||||
paths : TCmdStr;
|
||||
begin
|
||||
findlibraryfile:=false;
|
||||
foundfile:=s;
|
||||
@ -400,18 +400,18 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure TLinker.AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);
|
||||
procedure TLinker.AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);
|
||||
begin
|
||||
end;
|
||||
|
||||
|
||||
Procedure TLinker.AddObject(const S,unitpath : String;isunit:boolean);
|
||||
Procedure TLinker.AddObject(const S,unitpath : TCmdStr;isunit:boolean);
|
||||
begin
|
||||
ObjectFiles.Concat(FindObjectFile(s,unitpath,isunit));
|
||||
end;
|
||||
|
||||
|
||||
Procedure TLinker.AddSharedLibrary(S:String);
|
||||
Procedure TLinker.AddSharedLibrary(S:TCmdStr);
|
||||
begin
|
||||
if s='' then
|
||||
exit;
|
||||
@ -426,7 +426,7 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
Procedure TLinker.AddStaticLibrary(const S:String);
|
||||
Procedure TLinker.AddStaticLibrary(const S:TCmdStr);
|
||||
var
|
||||
ns : TCmdStr;
|
||||
found : boolean;
|
||||
@ -440,7 +440,7 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
Procedure TLinker.AddSharedCLibrary(S:String);
|
||||
Procedure TLinker.AddSharedCLibrary(S:TCmdStr);
|
||||
begin
|
||||
if s='' then
|
||||
exit;
|
||||
@ -455,7 +455,7 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
Procedure TLinker.AddStaticCLibrary(const S:String);
|
||||
Procedure TLinker.AddStaticCLibrary(const S:TCmdStr);
|
||||
var
|
||||
ns : TCmdStr;
|
||||
found : boolean;
|
||||
@ -469,7 +469,7 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);
|
||||
procedure AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);
|
||||
begin
|
||||
end;
|
||||
|
||||
@ -581,11 +581,11 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
Function TExternalLinker.FindUtil(const s:string):string;
|
||||
Function TExternalLinker.FindUtil(const s:TCmdStr):TCmdStr;
|
||||
var
|
||||
Found : boolean;
|
||||
FoundBin : TCmdStr;
|
||||
UtilExe : string;
|
||||
UtilExe : TCmdStr;
|
||||
begin
|
||||
if cs_link_on_target in current_settings.globalswitches then
|
||||
begin
|
||||
@ -656,7 +656,7 @@ Implementation
|
||||
|
||||
Function TExternalLinker.MakeStaticLibrary:boolean;
|
||||
|
||||
function GetNextFiles(const maxCmdLength : AInt; var item : TCmdStrListItem) : ansistring;
|
||||
function GetNextFiles(const maxCmdLength : AInt; var item : TCmdStrListItem) : TCmdStr;
|
||||
begin
|
||||
result := '';
|
||||
while (assigned(item) and ((length(result) + length(item.str) + 1) < maxCmdLength)) do begin
|
||||
@ -666,12 +666,12 @@ Implementation
|
||||
end;
|
||||
|
||||
var
|
||||
binstr, scriptfile : string;
|
||||
success : boolean;
|
||||
binstr, scriptfile : TCmdStr;
|
||||
cmdstr, nextcmd, smartpath : TCmdStr;
|
||||
current : TCmdStrListItem;
|
||||
script: Text;
|
||||
scripted_ar : boolean;
|
||||
success : boolean;
|
||||
begin
|
||||
MakeStaticLibrary:=false;
|
||||
{ remove the library, to be sure that it is rewritten }
|
||||
@ -782,7 +782,7 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure TInternalLinker.AddImportSymbol(const libname,symname:string;OrdNr: longint;isvar:boolean);
|
||||
procedure TInternalLinker.AddImportSymbol(const libname,symname:TCmdStr;OrdNr: longint;isvar:boolean);
|
||||
var
|
||||
ImportLibrary : TImportLibrary;
|
||||
ImportSymbol : TFPHashObject;
|
||||
@ -796,12 +796,12 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure TInternalLinker.Load_ReadObject(const para:string);
|
||||
procedure TInternalLinker.Load_ReadObject(const para:TCmdStr);
|
||||
var
|
||||
objdata : TObjData;
|
||||
objinput : TObjinput;
|
||||
objreader : TObjectReader;
|
||||
fn : string;
|
||||
fn : TCmdStr;
|
||||
begin
|
||||
fn:=FindObjectFile(para,'',false);
|
||||
Comment(V_Tried,'Reading object '+fn);
|
||||
@ -819,7 +819,7 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure TInternalLinker.Load_ReadStaticLibrary(const para:string);
|
||||
procedure TInternalLinker.Load_ReadStaticLibrary(const para:TCmdStr);
|
||||
var
|
||||
objreader : TObjectReader;
|
||||
begin
|
||||
@ -837,7 +837,7 @@ Implementation
|
||||
var
|
||||
s,
|
||||
para,
|
||||
keyword : string;
|
||||
keyword : String;
|
||||
hp : TCmdStrListItem;
|
||||
begin
|
||||
exeoutput.Load_Start;
|
||||
@ -870,7 +870,7 @@ Implementation
|
||||
var
|
||||
s,
|
||||
para,
|
||||
keyword : string;
|
||||
keyword : String;
|
||||
hp : TCmdStrListItem;
|
||||
begin
|
||||
exeoutput.Order_Start;
|
||||
@ -902,7 +902,7 @@ Implementation
|
||||
var
|
||||
s,
|
||||
para,
|
||||
keyword : string;
|
||||
keyword : String;
|
||||
hp : TCmdStrListItem;
|
||||
begin
|
||||
exeoutput.CalcPos_Start;
|
||||
@ -944,7 +944,7 @@ Implementation
|
||||
end;
|
||||
|
||||
|
||||
function TInternalLinker.RunLinkScript(const outputname:string):boolean;
|
||||
function TInternalLinker.RunLinkScript(const outputname:TCmdStr):boolean;
|
||||
label
|
||||
myexit;
|
||||
var
|
||||
|
@ -32,20 +32,20 @@ uses
|
||||
|
||||
type
|
||||
TScript=class
|
||||
fn : string[100];
|
||||
fn : TCmdStr;
|
||||
data : TCmdStrList;
|
||||
executable : boolean;
|
||||
constructor Create(const s:string);
|
||||
constructor CreateExec(const s:string);
|
||||
constructor Create(const s:TCmdStr);
|
||||
constructor CreateExec(const s:TCmdStr);
|
||||
destructor Destroy;override;
|
||||
procedure AddStart(const s:string);
|
||||
procedure Add(const s:string);
|
||||
procedure AddStart(const s:TCmdStr);
|
||||
procedure Add(const s:TCmdStr);
|
||||
Function Empty:boolean;
|
||||
procedure WriteToDisk;virtual;
|
||||
end;
|
||||
|
||||
TAsmScript = class (TScript)
|
||||
Constructor Create(Const ScriptName : String); virtual;
|
||||
Constructor Create(Const ScriptName : TCmdStr); virtual;
|
||||
Procedure AddAsmCommand (Const Command, Options,FileName : TCmdStr);virtual;abstract;
|
||||
Procedure AddLinkCommand (Const Command, Options, FileName : TCmdStr);virtual;abstract;
|
||||
Procedure AddDeleteCommand (Const FileName : TCmdStr);virtual;abstract;
|
||||
@ -62,7 +62,7 @@ type
|
||||
end;
|
||||
|
||||
TAsmScriptAmiga = class (TAsmScript)
|
||||
Constructor Create (Const ScriptName : String); override;
|
||||
Constructor Create (Const ScriptName : TCmdStr); override;
|
||||
Procedure AddAsmCommand (Const Command, Options,FileName : TCmdStr);override;
|
||||
Procedure AddLinkCommand (Const Command, Options, FileName : TCmdStr);override;
|
||||
Procedure AddDeleteCommand (Const FileName : TCmdStr);override;
|
||||
@ -71,7 +71,7 @@ type
|
||||
end;
|
||||
|
||||
TAsmScriptUnix = class (TAsmScript)
|
||||
Constructor Create (Const ScriptName : String);override;
|
||||
Constructor Create (Const ScriptName : TCmdStr);override;
|
||||
Procedure AddAsmCommand (Const Command, Options,FileName : TCmdStr);override;
|
||||
Procedure AddLinkCommand (Const Command, Options, FileName : TCmdStr);override;
|
||||
Procedure AddDeleteCommand (Const FileName : TCmdStr);override;
|
||||
@ -90,10 +90,10 @@ type
|
||||
|
||||
TLinkRes = Class (TScript)
|
||||
section: string[30];
|
||||
procedure Add(const s:ansistring);
|
||||
procedure AddFileName(const s:ansistring);
|
||||
procedure EndSection(const s:ansistring);
|
||||
procedure StartSection(const s:ansistring);
|
||||
procedure Add(const s:TCmdStr);
|
||||
procedure AddFileName(const s:TCmdStr);
|
||||
procedure EndSection(const s:TCmdStr);
|
||||
procedure StartSection(const s:TCmdStr);
|
||||
end;
|
||||
|
||||
var
|
||||
@ -176,7 +176,7 @@ procedure TScript.WriteToDisk;
|
||||
var
|
||||
t : file;
|
||||
i : longint;
|
||||
s : ansistring;
|
||||
s : TCmdStr;
|
||||
le: string[2];
|
||||
|
||||
begin
|
||||
|
@ -198,7 +198,7 @@ end;
|
||||
|
||||
function TLinkerAmiga.MakeAmigaPPCExe: boolean;
|
||||
var
|
||||
BinStr : string;
|
||||
BinStr,
|
||||
CmdStr : TCmdStr;
|
||||
StripStr: string[40];
|
||||
begin
|
||||
|
@ -357,8 +357,8 @@ end;
|
||||
|
||||
function TLinkerBeOS.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
cmdstr : TcmdStr;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
DynLinkStr : string[60];
|
||||
StaticStr,
|
||||
@ -408,7 +408,7 @@ end;
|
||||
|
||||
Function TLinkerBeOS.MakeSharedLibrary:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
DynLinkStr : string[60];
|
||||
|
@ -499,7 +499,7 @@ end;
|
||||
|
||||
function TLinkerBSD.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
DynLinkStr : string[60];
|
||||
@ -574,7 +574,7 @@ var
|
||||
InitStr,
|
||||
FiniStr,
|
||||
SoNameStr : string[80];
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
begin
|
||||
|
@ -218,7 +218,7 @@ end;
|
||||
|
||||
function TlinkerEmbedded.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : string;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
StaticStr,
|
||||
|
@ -449,7 +449,7 @@ end;
|
||||
|
||||
function TLinkerEMX.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
i : longint;
|
||||
|
@ -550,7 +550,7 @@ end;
|
||||
|
||||
function TLinkerGba.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : string;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
StaticStr,
|
||||
|
@ -235,7 +235,7 @@ end;
|
||||
|
||||
function TExternalLinkerGo32v2.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
StripStr : string[40];
|
||||
|
@ -754,7 +754,7 @@ end;
|
||||
|
||||
function TLinkerLinux.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
DynLinkStr : string[60];
|
||||
@ -824,7 +824,7 @@ var
|
||||
InitStr,
|
||||
FiniStr,
|
||||
SoNameStr : string[80];
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
begin
|
||||
|
@ -183,7 +183,7 @@ end;
|
||||
|
||||
function TLinkerMPW.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : string;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
DynLinkStr : string[60];
|
||||
|
@ -201,7 +201,7 @@ end;
|
||||
|
||||
function TLinkerMorphOS.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : string;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
StripStr: string[40];
|
||||
|
@ -694,7 +694,7 @@ end;
|
||||
|
||||
function TLinkerNDS.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : string;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
StaticStr,
|
||||
|
@ -527,8 +527,8 @@ Const
|
||||
|
||||
function TLinkerNetwlibc.MakeNetwareLoadableModule (isLib : boolean):boolean;
|
||||
var
|
||||
binstr : String;
|
||||
cmdstr : TcmdStr;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
xdcname : string;
|
||||
success : boolean;
|
||||
StripStr : string[2];
|
||||
|
@ -497,7 +497,7 @@ end;
|
||||
|
||||
function TLinkerNetware.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
StripStr : string[2];
|
||||
|
@ -448,7 +448,7 @@ end;
|
||||
|
||||
function TLinkeros2.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
i : longint;
|
||||
|
@ -158,7 +158,7 @@ end;
|
||||
|
||||
function TLinkerPalmOS.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : TPathStr;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
StripStr : string[40];
|
||||
|
@ -371,7 +371,7 @@ end;
|
||||
|
||||
function TLinkersolaris.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
DynLinkStr : string[60];
|
||||
@ -417,7 +417,7 @@ end;
|
||||
|
||||
Function TLinkersolaris.MakeSharedLibrary:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
begin
|
||||
|
@ -133,7 +133,7 @@ end;
|
||||
|
||||
function TLinkerWatcom.MakeExecutable:boolean;
|
||||
var
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
StripStr : string[40];
|
||||
|
@ -1278,7 +1278,7 @@ implementation
|
||||
function TExternalLinkerWin.MakeExecutable:boolean;
|
||||
var
|
||||
MapStr,
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
cmds,i : longint;
|
||||
@ -1382,7 +1382,7 @@ implementation
|
||||
Function TExternalLinkerWin.MakeSharedLibrary:boolean;
|
||||
var
|
||||
MapStr,
|
||||
binstr : String;
|
||||
binstr,
|
||||
cmdstr : TCmdStr;
|
||||
success : boolean;
|
||||
cmds,
|
||||
|
Loading…
Reference in New Issue
Block a user