From b823ce3277b3ece26f0e9528cb53d9caad273b3a Mon Sep 17 00:00:00 2001 From: hnb Date: Fri, 17 Mar 2017 21:21:51 +0000 Subject: [PATCH] CodeTools: find all *.ini files located in paths declared in fpc.cfg (-Fi option) git-svn-id: trunk@54438 - --- components/codetools/definetemplates.pas | 2 +- components/codetools/linkscanner.pas | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/components/codetools/definetemplates.pas b/components/codetools/definetemplates.pas index 533a9dbc3e..3de56b9a95 100644 --- a/components/codetools/definetemplates.pas +++ b/components/codetools/definetemplates.pas @@ -1871,7 +1871,7 @@ begin Filename:=Directory+ShortFilename; Ext:=LowerCase(ExtractFileExt(ShortFilename)); if (Ext='.inc') then begin - File_Name:=ExtractFileNameOnly(Filename); + File_Name:=ExtractFileName(Filename); if (not Includes.Contains(File_Name)) then Includes[File_Name]:=Filename; diff --git a/components/codetools/linkscanner.pas b/components/codetools/linkscanner.pas index 6f932637dd..f75986c352 100644 --- a/components/codetools/linkscanner.pas +++ b/components/codetools/linkscanner.pas @@ -829,6 +829,8 @@ function dbgs(s: TLSDirectiveKind): string; overload; implementation +uses + CodeToolManager, DefineTemplates; // useful procs ---------------------------------------------------------------- @@ -3968,6 +3970,9 @@ var end; function SearchCasedInIncPath(const RelFilename: string): boolean; + var + CfgCache: TFPCTargetConfigCache; + UnitSet: TFPCUnitSetCache; begin if FilenameIsAbsolute(FMainSourceFilename) then begin // main source has absolute filename @@ -3991,6 +3996,17 @@ var if Result then exit; end; + // then search the include file from fpc.cfg (-Fi option) + UnitSet:=CodeToolBoss.GetUnitSetForDirectory(''); + if UnitSet<>nil then begin + CfgCache:=UnitSet.GetConfigCache(false); + if CfgCache.Includes.GetString(AFilename,ExpFilename) then begin + NewCode:=LoadSourceCaseLoUp(ExpFilename); + Result:=(NewCode<>nil); + if Result then exit; + end; + end; + // then search the include file in the include path if not HasPathDelims then begin if MissingIncludeFile=nil then