mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-08 08:38:19 +02:00
codetools: fixed searching include file in fpc.cfg paths, issue #39872
This commit is contained in:
parent
fa535070e5
commit
32c250f997
@ -6073,13 +6073,15 @@ var
|
||||
UnitSet: TFPCUnitSetCache;
|
||||
Dir: String;
|
||||
begin
|
||||
Result:=False;
|
||||
Dir:=ExtractFilePath(Sender.MainFilename);
|
||||
// search the include file in directories defines in fpc.cfg (by -Fi option)
|
||||
UnitSet:=CodeToolBoss.GetUnitSetForDirectory(Dir);
|
||||
if UnitSet<>nil then begin
|
||||
CfgCache:=UnitSet.GetConfigCache(false);
|
||||
Result:=Assigned(CfgCache) and Assigned(CfgCache.Includes)
|
||||
and CfgCache.Includes.GetString(IncName,ExpFilename);
|
||||
if CfgCache=nil then exit;
|
||||
if CfgCache.Includes=nil then exit;
|
||||
Result:=CfgCache.Includes.GetString(IncName,ExpFilename);
|
||||
end
|
||||
else
|
||||
Result:=False;
|
||||
|
@ -1983,7 +1983,7 @@ var
|
||||
FileCount: Integer;
|
||||
Abort: boolean;
|
||||
FileInfo: TSearchRec;
|
||||
ShortFilename, Filename, File_Name: String;
|
||||
ShortFilename, Filename, File_Name, Ext: String;
|
||||
begin
|
||||
// units sources
|
||||
Units:=TStringToStringTree.Create(false);
|
||||
@ -2040,14 +2040,13 @@ begin
|
||||
ShortFilename:=FileInfo.Name;
|
||||
if (ShortFilename='') or (ShortFilename='.') or (ShortFilename='..') then
|
||||
continue;
|
||||
//debugln(['GatherUnitsInSearchPaths ShortFilename=',ShortFilename,' IsDir=',(FileInfo.Attr and faDirectory)>0]);
|
||||
Ext:=ExtractFileExt(ShortFilename);
|
||||
if IsPascalIncExt(PChar(Ext))=pietNone then
|
||||
continue;
|
||||
|
||||
Filename:=Directory+ShortFilename;
|
||||
if FilenameExtIs(ShortFilename,'.inc') then begin
|
||||
File_Name:=ExtractFileName(Filename);
|
||||
if (not Includes.Contains(File_Name))
|
||||
then
|
||||
Includes[File_Name]:=Filename;
|
||||
end;
|
||||
if not Includes.Contains(ShortFilename) then
|
||||
Includes[ShortFilename]:=Filename;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
finally
|
||||
FindCloseUTF8(FileInfo);
|
||||
|
@ -4141,7 +4141,7 @@ var
|
||||
FoundFilename:=DirectoryCachePool.FindIncludeFileInDirectory(Dir,RelFilename,AnyCase);
|
||||
if FoundFilename<>'' then begin
|
||||
{$IFDEF VerboseIncludeSearch}
|
||||
DebugLn('TLinkScanner.Search Filename="',AFilename,'" Found="',FoundFilename,'"');
|
||||
DebugLn('TLinkScanner.Search Filename="',RelFilename,'" Found="',FoundFilename,'"');
|
||||
{$ENDIF}
|
||||
NewCode:=FOnLoadSource(Self,FoundFilename,true);
|
||||
if (NewCode<>nil) then
|
||||
@ -4155,7 +4155,7 @@ var
|
||||
FoundFilename:=DirectoryCachePool.FindIncludeFileInDirectory(Dir,RelFilename,AnyCase);
|
||||
if FoundFilename<>'' then begin
|
||||
{$IFDEF VerboseIncludeSearch}
|
||||
DebugLn('TLinkScanner.Search Filename="',AFilename,'" Found="',FoundFilename,'"');
|
||||
DebugLn('TLinkScanner.Search Filename="',RelFilename,'" Found="',FoundFilename,'"');
|
||||
{$ENDIF}
|
||||
NewCode:=FOnLoadSource(Self,FoundFilename,true);
|
||||
if (NewCode<>nil) then
|
||||
@ -4166,7 +4166,7 @@ var
|
||||
FoundFilename:=DirectoryCachePool.FindIncludeFileInCompletePath(Dir,RelFilename,AnyCase);
|
||||
if FoundFilename<>'' then begin
|
||||
{$IFDEF VerboseIncludeSearch}
|
||||
DebugLn('TLinkScanner.Search Filename="',AFilename,'" Found="',FoundFilename,'"');
|
||||
DebugLn('TLinkScanner.Search Filename="',RelFilename,'" Found="',FoundFilename,'"');
|
||||
{$ENDIF}
|
||||
NewCode:=FOnLoadSource(Self,FoundFilename,true);
|
||||
if (NewCode<>nil) then
|
||||
@ -4177,7 +4177,7 @@ var
|
||||
// search the include file in directories defines in fpc.cfg (by -Fi option)
|
||||
if FilenameIsAbsolute(Dir)
|
||||
and Values.IsDefined('FPC')
|
||||
and OnFindIncFileInFPCSrcDir(Self,AFilename,FoundFilename) then
|
||||
and OnFindIncFileInFPCSrcDir(Self,RelFilename,FoundFilename) then
|
||||
begin
|
||||
NewCode:=FOnLoadSource(Self,FoundFilename,true);
|
||||
if NewCode<>nil then
|
||||
|
Loading…
Reference in New Issue
Block a user