summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-06-14 22:40:11 +0000
committernickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-06-14 22:40:11 +0000
commit1b94723f08e276dc5e3df31216df6574049014ec (patch)
treea3d14c777694ea8fbeb29aa6ecfc4f9cb8f0c93a
parent5dfffcda5167f65ffd1c97dcfa7dd1bd77f6ccbb (diff)
downloadfpc-1b94723f08e276dc5e3df31216df6574049014ec.tar.gz
+ register a win16 dll scanner. Not functional yet.
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42230 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--compiler/systems/t_win16.pas36
1 files changed, 36 insertions, 0 deletions
diff --git a/compiler/systems/t_win16.pas b/compiler/systems/t_win16.pas
index 0ff80961be..93c1fa2743 100644
--- a/compiler/systems/t_win16.pas
+++ b/compiler/systems/t_win16.pas
@@ -78,6 +78,16 @@ implementation
constructor create;override;
end;
+ { TDLLScannerWin16 }
+
+ TDLLScannerWin16=class(tDLLScanner)
+ private
+ importfound : boolean;
+{ procedure CheckDLLFunc(const dllname,funcname:string);}
+ public
+ function Scan(const binname:string):boolean;override;
+ end;
+
{****************************************************************************
TImportLibWin16
****************************************************************************}
@@ -397,6 +407,31 @@ begin
CObjInput:=TOmfObjInput;
end;
+{****************************************************************************
+ TDLLScannerWin16
+****************************************************************************}
+
+function TDLLScannerWin16.Scan(const binname: string): boolean;
+var
+ hs,
+ dllname : TCmdStr;
+begin
+ result:=false;
+ { is there already an import library the we will use that one }
+ if FindLibraryFile(binname,target_info.staticClibprefix,target_info.staticClibext,hs) then
+ exit;
+ { check if we can find the dll }
+ hs:=binname;
+ if ExtractFileExt(hs)='' then
+ hs:=ChangeFileExt(hs,target_info.sharedlibext);
+ if not FindDll(hs,dllname) then
+ exit;
+ importfound:=false;
+ {todo: ReadDLLImports(dllname,@CheckDLLFunc);}
+ if importfound then
+ current_module.dllscannerinputlist.Pack;
+ result:=importfound;
+end;
{*****************************************************************************
Initialize
@@ -407,5 +442,6 @@ initialization
RegisterLinker(ld_win16,TExternalLinkerWin16WLink);
RegisterImport(system_i8086_win16,TImportLibWin16);
RegisterExport(system_i8086_win16,TExportLibWin16);
+ RegisterDLLScanner(system_i8086_win16,TDLLScannerWin16);
RegisterTarget(system_i8086_win16_info);
end.