|
@@ -40,39 +40,40 @@ const
|
|
|
nSyntaxModeIs = 102; sSyntaxModeIs = 'Syntax mode is %s';
|
|
|
nMacroDefined = 103; sMacroDefined = 'Macro defined: %s';
|
|
|
nUsingPath = 104; sUsingPath = 'Using %s: "%s"';
|
|
|
- nFolderNotFound = 105; sFolderNotFound = '%s not found: "%s"';
|
|
|
- nNameValue = 106; sNameValue = '%s: "%s"';
|
|
|
- nReadingOptionsFromFile = 107; sReadingOptionsFromFile = 'Reading options from file "%s"';
|
|
|
- nEndOfReadingConfigFile = 108; sEndOfReadingConfigFile = 'End of reading config file "%s"';
|
|
|
- nInterpretingFileOption = 109; sInterpretingFileOption = 'interpreting file option "%s"';
|
|
|
- nSourceFileNotFound = 110; sSourceFileNotFound = 'source file not found "%s"';
|
|
|
- nFileIsFolder = 111; sFileIsFolder = 'expected file, but found directory "%s"';
|
|
|
+ nFolderNotFound = 105; sFolderNotFound = '%s not found: %s';
|
|
|
+ nNameValue = 106; sNameValue = '%s: %s';
|
|
|
+ nReadingOptionsFromFile = 107; sReadingOptionsFromFile = 'Reading options from file %s';
|
|
|
+ nEndOfReadingConfigFile = 108; sEndOfReadingConfigFile = 'End of reading config file %s';
|
|
|
+ nInterpretingFileOption = 109; sInterpretingFileOption = 'interpreting file option %s';
|
|
|
+ nSourceFileNotFound = 110; sSourceFileNotFound = 'source file not found %s';
|
|
|
+ nFileIsFolder = 111; sFileIsFolder = 'expected file, but found directory %s';
|
|
|
nConfigFileSearch = 112; sConfigFileSearch = 'Configfile search: %s';
|
|
|
- nHandlingOption = 113; sHandlingOption = 'handling option "%s"';
|
|
|
- nQuickHandlingOption = 114; sQuickHandlingOption = 'quick handling option "%s"';
|
|
|
- nOutputDirectoryNotFound = 115; sOutputDirectoryNotFound = 'output directory not found: "%s"';
|
|
|
- nUnableToWriteFile = 116; sUnableToWriteFile = 'Unable to write file "%s"';
|
|
|
- nWritingFile = 117; sWritingFile = 'Writing file "%s" ...';
|
|
|
+ nHandlingOption = 113; sHandlingOption = 'handling option %s';
|
|
|
+ nQuickHandlingOption = 114; sQuickHandlingOption = 'quick handling option %s';
|
|
|
+ nOutputDirectoryNotFound = 115; sOutputDirectoryNotFound = 'output directory not found: %s';
|
|
|
+ nUnableToWriteFile = 116; sUnableToWriteFile = 'Unable to write file %s';
|
|
|
+ nWritingFile = 117; sWritingFile = 'Writing file %s ...';
|
|
|
nCompilationAborted = 118; sCompilationAborted = 'Compilation aborted';
|
|
|
- nCfgDirective = 119; sCfgDirective = 'cfg directive "%s": %s';
|
|
|
+ nCfgDirective = 119; sCfgDirective = 'cfg directive %s: %s';
|
|
|
nUnitCycle = 120; sUnitCycle = 'Unit cycle found %s';
|
|
|
nOptionForbidsCompile = 121; sOptionForbidsCompile = 'Option -Ju forbids to compile unit "%s"';
|
|
|
nUnitNeedsCompileDueToUsedUnit = 122; sUnitsNeedCompileDueToUsedUnit = 'Unit "%s" needs compile due to used unit "%s"';
|
|
|
nUnitNeedsCompileDueToOption = 123; sUnitsNeedCompileDueToOption = 'Unit "%s" needs compile due to option "%s"';
|
|
|
nUnitNeedsCompileJSMissing = 124; sUnitsNeedCompileJSMissing = 'Unit "%s" needs compile, js file missing "%s"';
|
|
|
- nUnitNeedsCompilePasHasChanged = 125; sUnitsNeedCompilePasHasChanged = 'Unit "%s" needs compile, Pascal file has changed, js is "%s"';
|
|
|
- nParsingFile = 126; sParsingFile = 'Parsing "%s" ...';
|
|
|
- nCompilingFile = 127; sCompilingFile = 'Compiling "%s" ...';
|
|
|
+ nUnitNeedsCompilePasHasChanged = 125; sUnitsNeedCompilePasHasChanged = 'Unit "%s" needs compile, Pascal file has changed, js is %s';
|
|
|
+ nParsingFile = 126; sParsingFile = 'Parsing %s ...';
|
|
|
+ nCompilingFile = 127; sCompilingFile = 'Compiling %s ...';
|
|
|
nExpectedButFound = 128; sExpectedButFound = 'Illegal unit name: Expected "%s", but found "%s"';
|
|
|
nLinesInFilesCompiled = 129; sLinesInFilesCompiled = '%s lines in %s files compiled, %s sec';
|
|
|
nTargetPlatformIs = 130; sTargetPlatformIs = 'Target platform is %s';
|
|
|
nTargetProcessorIs = 131; sTargetProcessorIs = 'Target processor is %s';
|
|
|
nMessageEncodingIs = 132; sMessageEncodingIs = 'Message encoding is %s';
|
|
|
- nUnableToTranslatePathToDir = 133; sUnableToTranslatePathToDir = 'Unable to translate path "%s" to directory "%s"';
|
|
|
+ nUnableToTranslatePathToDir = 133; sUnableToTranslatePathToDir = 'Unable to translate path %s to directory %s';
|
|
|
nSrcMapSourceRootIs = 134; sSrcMapSourceRootIs = 'source map "sourceRoot" is %s';
|
|
|
nSrcMapBaseDirIs = 135; sSrcMapBaseDirIs = 'source map "local base directory" is %s';
|
|
|
- nUnitFileNotFound = 136; sUnitFileNotFound = 'unit file not found "%s"';
|
|
|
- nInterfaceStyleIs = 137; sInterfaceStyleIs = 'Interface style is %s';
|
|
|
+ nUnitFileNotFound = 136; sUnitFileNotFound = 'unit file not found %s';
|
|
|
+ nClassInterfaceStyleIs = 137; sClassInterfaceStyleIs = 'Class interface style is %s';
|
|
|
+ nMacroXSetToY = 138; sMacroXSetToY = 'Macro %s set to %s';
|
|
|
// Note: error numbers 201+ are used by Pas2jsFileCache
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
@@ -892,6 +893,8 @@ begin
|
|
|
RaiseInternalError(20180312142954,'');
|
|
|
FPCUReader:=PCUFormat.ReaderClass.Create;
|
|
|
|
|
|
+ if ShowDebug then
|
|
|
+ Log.LogMsg(nParsingFile,[QuoteStr(PCUFilename)]);
|
|
|
aFile:=Compiler.FileCache.LoadFile(PCUFilename,true);
|
|
|
if aFile=nil then
|
|
|
RaiseInternalError(20180312145941,PCUFilename);
|
|
@@ -1264,7 +1267,7 @@ begin
|
|
|
writeln('TPas2jsCompilerFile.WritePCU precompiled ',PCUFilename);
|
|
|
{$ENDIF}
|
|
|
|
|
|
- Log.LogMsg(nWritingFile,[Compiler.FileCache.FormatPath(PCUFilename)],'',0,0,
|
|
|
+ Log.LogMsg(nWritingFile,[QuoteStr(Compiler.FileCache.FormatPath(PCUFilename))],'',0,0,
|
|
|
not (coShowLineNumbers in Compiler.Options));
|
|
|
|
|
|
// check output directory
|
|
@@ -1274,7 +1277,7 @@ begin
|
|
|
{$IF defined(VerboseUnitQueue) or defined(VerbosePCUFiler)}
|
|
|
writeln('TPas2jsCompilerFile.WritePCU output dir not found "',DestDir,'"');
|
|
|
{$ENDIF}
|
|
|
- Log.LogMsg(nOutputDirectoryNotFound,[Compiler.FileCache.FormatPath(DestDir)]);
|
|
|
+ Log.LogMsg(nOutputDirectoryNotFound,[QuoteStr(Compiler.FileCache.FormatPath(DestDir))]);
|
|
|
Compiler.Terminate(ExitCodeFileNotFound);
|
|
|
end;
|
|
|
if Compiler.DirectoryExists(PCUFilename) then
|
|
@@ -1282,7 +1285,7 @@ begin
|
|
|
{$IF defined(VerboseUnitQueue) or defined(VerbosePCUFiler)}
|
|
|
writeln('TPas2jsCompilerFile.WritePCU file is folder "',DestDir,'"');
|
|
|
{$ENDIF}
|
|
|
- Log.LogMsg(nFileIsFolder,[Compiler.FileCache.FormatPath(PCUFilename)]);
|
|
|
+ Log.LogMsg(nFileIsFolder,[QuoteStr(Compiler.FileCache.FormatPath(PCUFilename))]);
|
|
|
Compiler.Terminate(ExitCodeWriteError);
|
|
|
end;
|
|
|
|
|
@@ -1314,7 +1317,7 @@ end;
|
|
|
procedure TPas2jsCompilerFile.ReadUnit;
|
|
|
begin
|
|
|
if ShowDebug then
|
|
|
- Log.LogPlain(['Debug: Parsing Pascal "',PasFilename,'"...']);
|
|
|
+ Log.LogMsg(nParsingFile,[QuoteStr(PasFilename)]);
|
|
|
if FPasModule<>nil then
|
|
|
Compiler.RaiseInternalError(20180305190321,PasFilename);
|
|
|
FReaderState:=prsReading;
|
|
@@ -2129,7 +2132,7 @@ begin
|
|
|
else if (aFile.JSFilename<>'')
|
|
|
and (DirectoryCache.FileAge(aFile.PasFilename)>DirectoryCache.FileAge(aFile.JSFilename))
|
|
|
then begin
|
|
|
- Mark(nUnitNeedsCompilePasHasChanged,[aFile.GetModuleName,FileCache.FormatPath(aFile.JSFilename)])
|
|
|
+ Mark(nUnitNeedsCompilePasHasChanged,[aFile.GetModuleName,QuoteStr(FileCache.FormatPath(aFile.JSFilename))])
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -2193,7 +2196,7 @@ begin
|
|
|
if Checked.Find(aFile)<>nil then exit;
|
|
|
Checked.Add(aFile);
|
|
|
|
|
|
- Log.LogMsg(nCompilingFile,[FileCache.FormatPath(aFile.PasFilename)],'',0,0,
|
|
|
+ Log.LogMsg(nCompilingFile,[QuoteStr(FileCache.FormatPath(aFile.PasFilename))],'',0,0,
|
|
|
not (coShowLineNumbers in Options));
|
|
|
|
|
|
// convert dependencies
|
|
@@ -2231,8 +2234,8 @@ begin
|
|
|
if not SrcMapInclude then
|
|
|
begin
|
|
|
Log.Log(mtError,
|
|
|
- SafeFormat(sUnableToTranslatePathToDir,[LocalFilename,BaseDir]),
|
|
|
- nUnableToTranslatePathToDir);
|
|
|
+ SafeFormat(sUnableToTranslatePathToDir,[QuoteStr(LocalFilename),QuoteStr(BaseDir)]),
|
|
|
+ nUnableToTranslatePathToDir);
|
|
|
Terminate(ExitCodeConverterError);
|
|
|
end;
|
|
|
// the source is included, do not translate the filename
|
|
@@ -2373,19 +2376,19 @@ begin
|
|
|
// write to file
|
|
|
|
|
|
//writeln('TPas2jsCompiler.WriteJSFiles ',aFile.PasFilename,' ',aFile.JSFilename);
|
|
|
- Log.LogMsg(nWritingFile,[FileCache.FormatPath(DestFilename)],'',0,0,
|
|
|
+ Log.LogMsg(nWritingFile,[QuoteStr(FileCache.FormatPath(DestFilename))],'',0,0,
|
|
|
not (coShowLineNumbers in Options));
|
|
|
|
|
|
// check output directory
|
|
|
DestDir:=ChompPathDelim(ExtractFilePath(DestFilename));
|
|
|
if (DestDir<>'') and not DirectoryExists(DestDir) then
|
|
|
begin
|
|
|
- Log.LogMsg(nOutputDirectoryNotFound,[FileCache.FormatPath(DestDir)]);
|
|
|
+ Log.LogMsg(nOutputDirectoryNotFound,[QuoteStr(FileCache.FormatPath(DestDir))]);
|
|
|
Terminate(ExitCodeFileNotFound);
|
|
|
end;
|
|
|
if DirectoryExists(DestFilename) then
|
|
|
begin
|
|
|
- Log.LogMsg(nFileIsFolder,[FileCache.FormatPath(DestFilename)]);
|
|
|
+ Log.LogMsg(nFileIsFolder,[QuoteStr(FileCache.FormatPath(DestFilename))]);
|
|
|
Terminate(ExitCodeWriteError);
|
|
|
end;
|
|
|
|
|
@@ -2417,7 +2420,7 @@ begin
|
|
|
except
|
|
|
on E: Exception do begin
|
|
|
Log.LogPlain('Error: '+E.Message);
|
|
|
- Log.LogMsg(nUnableToWriteFile,[FileCache.FormatPath(DestFilename)]);
|
|
|
+ Log.LogMsg(nUnableToWriteFile,[QuoteStr(FileCache.FormatPath(DestFilename))]);
|
|
|
Terminate(ExitCodeWriteError);
|
|
|
end;
|
|
|
end;
|
|
@@ -2425,7 +2428,7 @@ begin
|
|
|
// write source map
|
|
|
if aFileWriter.SrcMap<>nil then
|
|
|
begin
|
|
|
- Log.LogMsg(nWritingFile,[FileCache.FormatPath(MapFilename)],'',0,0,
|
|
|
+ Log.LogMsg(nWritingFile,[QuoteStr(FileCache.FormatPath(MapFilename))],'',0,0,
|
|
|
not (coShowLineNumbers in Options));
|
|
|
FinishSrcMap(aFileWriter.SrcMap);
|
|
|
try
|
|
@@ -2441,7 +2444,7 @@ begin
|
|
|
except
|
|
|
on E: Exception do begin
|
|
|
Log.LogPlain('Error: '+E.Message);
|
|
|
- Log.LogMsg(nUnableToWriteFile,[FileCache.FormatPath(MapFilename)]);
|
|
|
+ Log.LogMsg(nUnableToWriteFile,[QuoteStr(FileCache.FormatPath(MapFilename))]);
|
|
|
Terminate(ExitCodeWriteError);
|
|
|
end;
|
|
|
end;
|
|
@@ -2745,7 +2748,7 @@ var
|
|
|
|
|
|
procedure DebugCfgDirective(const s: string);
|
|
|
begin
|
|
|
- Log.LogMsg(nCfgDirective,[Line,s],CurrentCfgFilename,CurrentCfgLineNumber,1,false);
|
|
|
+ Log.LogMsg(nCfgDirective,[QuoteStr(Line),s],CurrentCfgFilename,CurrentCfgLineNumber,1,false);
|
|
|
end;
|
|
|
|
|
|
var
|
|
@@ -2756,7 +2759,7 @@ var
|
|
|
CacheFile: TPas2jsCachedFile;
|
|
|
begin
|
|
|
if ShowTriedUsedFiles then
|
|
|
- Log.LogMsgIgnoreFilter(nReadingOptionsFromFile,[CfgFilename]);
|
|
|
+ Log.LogMsgIgnoreFilter(nReadingOptionsFromFile,[QuoteStr(CfgFilename)]);
|
|
|
IfLvl:=0;
|
|
|
SkipLvl:=0;
|
|
|
Skip:=skipNone;
|
|
@@ -2771,7 +2774,7 @@ begin
|
|
|
Line:=aFile.ReadLine;
|
|
|
FCurrentCfgLineNumber:=aFile.LineNumber;
|
|
|
if ShowDebug then
|
|
|
- Log.LogMsgIgnoreFilter(nInterpretingFileOption,[Line]);
|
|
|
+ Log.LogMsgIgnoreFilter(nInterpretingFileOption,[QuoteStr(Line)]);
|
|
|
if Line='' then continue;
|
|
|
p:=PChar(Line);
|
|
|
while (p^ in [' ',#9]) do inc(p);
|
|
@@ -2909,7 +2912,7 @@ begin
|
|
|
aFile.Free;
|
|
|
end;
|
|
|
if ShowTriedUsedFiles then
|
|
|
- Log.LogMsgIgnoreFilter(nEndOfReadingConfigFile,[CfgFilename]);
|
|
|
+ Log.LogMsgIgnoreFilter(nEndOfReadingConfigFile,[QuoteStr(CfgFilename)]);
|
|
|
end;
|
|
|
|
|
|
procedure TPas2jsCompiler.LoadDefaultConfig;
|
|
@@ -2987,9 +2990,9 @@ begin
|
|
|
//writeln('TPas2jsCompiler.ReadParam ',Param,' ',Quick,' ',FromCmdLine);
|
|
|
if ShowDebug then
|
|
|
if Quick then
|
|
|
- Log.LogMsgIgnoreFilter(nQuickHandlingOption,[Param])
|
|
|
+ Log.LogMsgIgnoreFilter(nQuickHandlingOption,[QuoteStr(Param)])
|
|
|
else
|
|
|
- Log.LogMsgIgnoreFilter(nHandlingOption,[Param]);
|
|
|
+ Log.LogMsgIgnoreFilter(nHandlingOption,[QuoteStr(Param)]);
|
|
|
if Param='' then exit;
|
|
|
ParamMacros.Substitute(Param,Self);
|
|
|
if Param='' then exit;
|
|
@@ -3630,7 +3633,8 @@ begin
|
|
|
r(mtInfo,nSrcMapSourceRootIs,sSrcMapSourceRootIs);
|
|
|
r(mtInfo,nSrcMapBaseDirIs,sSrcMapBaseDirIs);
|
|
|
r(mtFatal,nUnitFileNotFound,sUnitFileNotFound);
|
|
|
- r(mtInfo,nInterfaceStyleIs,sInterfaceStyleIs);
|
|
|
+ r(mtInfo,nClassInterfaceStyleIs,sClassInterfaceStyleIs);
|
|
|
+ r(mtInfo,nMacroXSetToY,sMacroXSetToY);
|
|
|
Pas2jsPParser.RegisterMessages(Log);
|
|
|
end;
|
|
|
|
|
@@ -4081,7 +4085,7 @@ begin
|
|
|
Log.LogMsgIgnoreFilter(nTargetProcessorIs,[PasToJsProcessorNames[TargetProcessor]]);
|
|
|
// default syntax mode
|
|
|
Log.LogMsgIgnoreFilter(nSyntaxModeIs,[p2jscModeNames[Mode]]);
|
|
|
- Log.LogMsgIgnoreFilter(nInterfaceStyleIs,[InterfaceTypeNames[InterfaceType]]);
|
|
|
+ Log.LogMsgIgnoreFilter(nClassInterfaceStyleIs,[InterfaceTypeNames[InterfaceType]]);
|
|
|
// boolean options
|
|
|
for co in TP2jsCompilerOption do
|
|
|
Log.LogMsgIgnoreFilter(nOptionIsEnabled,
|
|
@@ -4093,8 +4097,8 @@ begin
|
|
|
// source map options
|
|
|
if SrcMapEnable then
|
|
|
begin
|
|
|
- Log.LogMsgIgnoreFilter(nSrcMapSourceRootIs,[SrcMapSourceRoot]);
|
|
|
- Log.LogMsgIgnoreFilter(nSrcMapBaseDirIs,[SrcMapBaseDir]);
|
|
|
+ Log.LogMsgIgnoreFilter(nSrcMapSourceRootIs,[QuoteStr(SrcMapSourceRoot)]);
|
|
|
+ Log.LogMsgIgnoreFilter(nSrcMapBaseDirIs,[QuoteStr(SrcMapBaseDir)]);
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -4109,8 +4113,9 @@ begin
|
|
|
S:=Defines[i];
|
|
|
M:=TMacroDef(Defines.Objects[i]);
|
|
|
if M<>nil then
|
|
|
- S:=S+'='+M.Value;
|
|
|
- Log.LogMsgIgnoreFilter(nMacroDefined,[S]);
|
|
|
+ Log.LogMsgIgnoreFilter(nMacroXSetToY,[S,QuoteStr(M.Value)])
|
|
|
+ else
|
|
|
+ Log.LogMsgIgnoreFilter(nMacroDefined,[S]);
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -4121,7 +4126,7 @@ procedure TPas2jsCompiler.WriteFoldersAndSearchPaths;
|
|
|
if Folder='' then exit;
|
|
|
Log.LogMsgIgnoreFilter(nUsingPath,[aName,Folder]);
|
|
|
if not DirectoryExists(ChompPathDelim(Folder)) then
|
|
|
- Log.LogMsgIgnoreFilter(nFolderNotFound,[aName,Folder]);
|
|
|
+ Log.LogMsgIgnoreFilter(nFolderNotFound,[aName,QuoteStr(Folder)]);
|
|
|
end;
|
|
|
|
|
|
var
|
|
@@ -4136,7 +4141,7 @@ begin
|
|
|
for i:=0 to FileCache.IncludePaths.Count-1 do
|
|
|
WriteFolder('include path',FileCache.IncludePaths[i]);
|
|
|
WriteFolder('unit output path',FileCache.UnitOutputPath);
|
|
|
- Log.LogMsgIgnoreFilter(nNameValue,['output file',FileCache.MainJSFile]);
|
|
|
+ Log.LogMsgIgnoreFilter(nNameValue,['output file',QuoteStr(FileCache.MainJSFile)]);
|
|
|
end;
|
|
|
|
|
|
procedure TPas2jsCompiler.WriteInfo;
|
|
@@ -4220,16 +4225,16 @@ begin
|
|
|
if (UnitFilename='') or not DirectoryCache.FileExists(UnitFilename) then
|
|
|
begin
|
|
|
if aFormat=nil then
|
|
|
- Log.LogMsg(nSourceFileNotFound,[UnitFilename])
|
|
|
+ Log.LogMsg(nSourceFileNotFound,[QuoteStr(UnitFilename)])
|
|
|
else
|
|
|
- Log.LogMsg(nUnitFileNotFound,[UnitFilename]);
|
|
|
+ Log.LogMsg(nUnitFileNotFound,[QuoteStr(UnitFilename)]);
|
|
|
Terminate(ExitCodeFileNotFound);
|
|
|
end;
|
|
|
|
|
|
UnitFilename:=ExpandFileNameUTF8(UnitFilename,FileCache.BaseDirectory);
|
|
|
if DirectoryCache.DirectoryExists(UnitFilename) then
|
|
|
begin
|
|
|
- Log.LogMsg(nFileIsFolder,[UnitFilename]);
|
|
|
+ Log.LogMsg(nFileIsFolder,[QuoteStr(UnitFilename)]);
|
|
|
Terminate(ExitCodeFileNotFound);
|
|
|
end;
|
|
|
|