mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 18:59:11 +02:00
pastojs: fixed include file search in module directory
git-svn-id: trunk@41622 -
This commit is contained in:
parent
94bb523217
commit
9e6f50413b
@ -257,7 +257,7 @@ type
|
|||||||
function FindCustomJSFileName(const aFilename: string): String; override;
|
function FindCustomJSFileName(const aFilename: string): String; override;
|
||||||
function FindUnitJSFileName(const aUnitFilename: string): String; override;
|
function FindUnitJSFileName(const aUnitFilename: string): String; override;
|
||||||
function FindUnitFileName(const aUnitname, InFilename, ModuleDir: string; out IsForeign: boolean): String; override;
|
function FindUnitFileName(const aUnitname, InFilename, ModuleDir: string; out IsForeign: boolean): String; override;
|
||||||
function FindIncludeFileName(const aFilename: string): String; override;
|
function FindIncludeFileName(const aFilename, ModuleDir: string): String; override;
|
||||||
function AddIncludePaths(const Paths: string; FromCmdLine: boolean; out ErrorMsg: string): boolean;
|
function AddIncludePaths(const Paths: string; FromCmdLine: boolean; out ErrorMsg: string): boolean;
|
||||||
function AddUnitPaths(const Paths: string; FromCmdLine: boolean; out ErrorMsg: string): boolean;
|
function AddUnitPaths(const Paths: string; FromCmdLine: boolean; out ErrorMsg: string): boolean;
|
||||||
function AddSrcUnitPaths(const Paths: string; FromCmdLine: boolean; out ErrorMsg: string): boolean;
|
function AddSrcUnitPaths(const Paths: string; FromCmdLine: boolean; out ErrorMsg: string): boolean;
|
||||||
@ -1812,7 +1812,8 @@ begin
|
|||||||
UsePointDirectory, true, RelPath);
|
UsePointDirectory, true, RelPath);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPas2jsFilesCache.FindIncludeFileName(const aFilename: string): String;
|
function TPas2jsFilesCache.FindIncludeFileName(const aFilename,
|
||||||
|
ModuleDir: string): String;
|
||||||
|
|
||||||
function SearchCasedInIncPath(const Filename: string): string;
|
function SearchCasedInIncPath(const Filename: string): string;
|
||||||
var
|
var
|
||||||
@ -1820,9 +1821,9 @@ function TPas2jsFilesCache.FindIncludeFileName(const aFilename: string): String;
|
|||||||
begin
|
begin
|
||||||
// file name is relative
|
// file name is relative
|
||||||
// first search in the same directory as the unit
|
// first search in the same directory as the unit
|
||||||
if BaseDirectory<>'' then
|
if ModuleDir<>'' then
|
||||||
begin
|
begin
|
||||||
Result:=BaseDirectory+Filename;
|
Result:=IncludeTrailingPathDelimiter(ModuleDir)+Filename;
|
||||||
if SearchLowUpCase(Result) then exit;
|
if SearchLowUpCase(Result) then exit;
|
||||||
end;
|
end;
|
||||||
// then search in include path
|
// then search in include path
|
||||||
|
@ -96,7 +96,7 @@ Type
|
|||||||
function FindSourceFileName(const aFilename: string): String; virtual; abstract;
|
function FindSourceFileName(const aFilename: string): String; virtual; abstract;
|
||||||
Public
|
Public
|
||||||
// Public Abstract. Must be overridden
|
// Public Abstract. Must be overridden
|
||||||
function FindIncludeFileName(const aFilename: string): String; virtual; abstract;
|
function FindIncludeFileName(const aFilename, ModuleDir: string): String; virtual; abstract;
|
||||||
function LoadFile(Filename: string; Binary: boolean = false): TPas2jsFile; virtual; abstract;
|
function LoadFile(Filename: string; Binary: boolean = false): TPas2jsFile; virtual; abstract;
|
||||||
Function FileExists(Const aFileName: String): Boolean; virtual; abstract;
|
Function FileExists(Const aFileName: String): Boolean; virtual; abstract;
|
||||||
function FindUnitJSFileName(const aUnitFilename: string): String; virtual; abstract;
|
function FindUnitJSFileName(const aUnitFilename: string): String; virtual; abstract;
|
||||||
@ -416,7 +416,7 @@ var
|
|||||||
Filename: String;
|
Filename: String;
|
||||||
begin
|
begin
|
||||||
Result:=nil;
|
Result:=nil;
|
||||||
Filename:=FS.FindIncludeFileName(aFilename);
|
Filename:=FS.FindIncludeFileName(aFilename,BaseDirectory);
|
||||||
if Filename='' then exit;
|
if Filename='' then exit;
|
||||||
try
|
try
|
||||||
Result:=FindSourceFile(Filename);
|
Result:=FindSourceFile(Filename);
|
||||||
@ -433,7 +433,7 @@ end;
|
|||||||
function TPas2jsFSResolver.FindIncludeFileName(const aFilename: string): String;
|
function TPas2jsFSResolver.FindIncludeFileName(const aFilename: string): String;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result:=FS.FindIncludeFileName(aFilename);
|
Result:=FS.FindIncludeFileName(aFilename,BaseDirectory);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -3735,8 +3735,11 @@ begin
|
|||||||
' s = ''end'';',
|
' s = ''end'';',
|
||||||
' s = "end";',
|
' s = "end";',
|
||||||
' return Result;',
|
' return Result;',
|
||||||
'};'
|
'};',
|
||||||
]),
|
'this.Fly = function () {',
|
||||||
|
' return;',
|
||||||
|
'};',
|
||||||
|
'']),
|
||||||
LinesToStr([
|
LinesToStr([
|
||||||
''
|
''
|
||||||
]));
|
]));
|
||||||
|
@ -143,6 +143,7 @@ type
|
|||||||
procedure TestUS_Program_FU;
|
procedure TestUS_Program_FU;
|
||||||
procedure TestUS_Program_FU_o;
|
procedure TestUS_Program_FU_o;
|
||||||
procedure TestUS_Program_FE_o;
|
procedure TestUS_Program_FE_o;
|
||||||
|
procedure TestUS_IncludeSameDir;
|
||||||
|
|
||||||
procedure TestUS_UsesInFile;
|
procedure TestUS_UsesInFile;
|
||||||
procedure TestUS_UsesInFile_Duplicate;
|
procedure TestUS_UsesInFile_Duplicate;
|
||||||
@ -695,6 +696,27 @@ begin
|
|||||||
AssertNotNull('foo.js not found',FindFile('foo.js'));
|
AssertNotNull('foo.js not found',FindFile('foo.js'));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestCLI_UnitSearch.TestUS_IncludeSameDir;
|
||||||
|
begin
|
||||||
|
AddUnit('system.pp',[''],['']);
|
||||||
|
AddFile('sub/defines.inc',[
|
||||||
|
'{$Define foo}',
|
||||||
|
'']);
|
||||||
|
AddUnit('sub/unit1.pas',
|
||||||
|
['{$I defines.inc}',
|
||||||
|
'{$ifdef foo}',
|
||||||
|
'var a: longint;',
|
||||||
|
'{$endif}'],
|
||||||
|
['']);
|
||||||
|
AddFile('test1.pas',[
|
||||||
|
'uses unit1;',
|
||||||
|
'begin',
|
||||||
|
' a:=3;',
|
||||||
|
'end.']);
|
||||||
|
AddDir('lib');
|
||||||
|
Compile(['test1.pas','-Fusub','-FElib','-ofoo.js']);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTestCLI_UnitSearch.TestUS_UsesInFile;
|
procedure TTestCLI_UnitSearch.TestUS_UsesInFile;
|
||||||
begin
|
begin
|
||||||
AddUnit('system.pp',[''],['']);
|
AddUnit('system.pp',[''],['']);
|
||||||
|
Loading…
Reference in New Issue
Block a user