Hast du den Delphi-Mode schon an? Das ist nur eine Idee.
Ja, alle Projekte haben den Delphi-Mode aktiviert. Dennoch gibt nur der Free Pascal Compiler alle Hinweise und Warnungen aus. Mit Delphi erscheint keine.
Ich habe nun aber in der FPC Dokumentation die Direktiven PUSH und POP gefunden (siehe
https://www.freepascal.org/docs-html/prog/progsu63.html), und nun eine LÖsung, die ohne vorkompilierte DCUs funktioniert.
Dokumentiert ist dies auch hier
https://wiki.freepascal.org/Turn_war...ints_on_or_off
An einem Beispiel habe ich dies nun ausprobiert.
In der
Indy Unit IdGlobal ist eine Direktive, die unter FPC wieder alle Hints aktiviert:
Delphi-Quellcode:
{$HINTS OFF}
function IsNumeric(const AString: string): Boolean;
var
LCode: Integer;
LVoid: Int64;
begin
Val(AString, LVoid, LCode);
Result := LCode = 0;
end;
{$HINTS ON}
Eingebunden hatte ich IdGlobal so:
Delphi-Quellcode:
{$WARNINGS OFF}{$HINTS OFF}{$NOTES OFF}
IdGlobal,
Unter Delphi werden die Hints in der
Unit IdGlobal daher durchgängig ausgeschaltet, und das HINTS ON ist wirkungslos.
Unter FPC werden ab der HINTS ON Anweisung wieder alle Hints ausgegeben.
Nachdem ich dies in IdGlobal umgestellt habe auf:
Delphi-Quellcode:
{$PUSH}{$HINTS OFF}
function IsNumeric(const AString: string): Boolean;
var
LCode: Integer;
LVoid: Int64;
begin
Val(AString, LVoid, LCode);
Result := LCode = 0;
end;
{$POP}
werden keine Hints mehr angezeigt. Das POP sorgt dafür dass der vorherige Zustand wieder hergestellt wird, und damit sind die Hints weiterhin abgeschaltet.
Im Endergebnis brauche ich daher nur an den wenigen Stellen, an denen zum Beispiel mORMOt2 mormot.net.sock eingebunden wird, diese Zeilen davor und danach:
Delphi-Quellcode:
{$IFDEF FPC}{$NOTES OFF}{$ENDIF}{$HINTS OFF}{$WARNINGS OFF}
mormot.net.sock,
{$IFDEF FPC}{$ELSE}{$HINTS ON}{$WARNINGS ON}{$ENDIF}
und alle Warnungen, Hinweise und Notes für
Indy werden unterdrückt.
Für alle anderen Units mit meinem eigenen Code erhalte ich weiterhin alle Meldungen, wenn ich mit Free Pascal kompiliere.
Insgesamt erhalte ich in Free Pascal nun anstatt den bisherigen ca. 200 Meldungen nur noch die 20, die eigenen Code betreffen.