mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 14:49:28 +02:00
IDE: fixed command line help
git-svn-id: trunk@42496 -
This commit is contained in:
parent
fc3240996d
commit
02345b4e6a
@ -1015,17 +1015,22 @@ function TCompilerOptReader.ReadAndParseOptions: TModalResult;
|
||||
var
|
||||
Lines: TStringList;
|
||||
ParsedTarget: String;
|
||||
t: array[0..5] of TDateTime;
|
||||
i: Integer;
|
||||
begin
|
||||
OptionIdCounter := 0;
|
||||
fErrorMsg := '';
|
||||
t[0]:=Now;
|
||||
if fCompilerExecutable = '' then
|
||||
fCompilerExecutable := 'fpc'; // Let's hope "fpc" is found in PATH.
|
||||
ParsedTarget := '-T$(TargetOS) -P$(TargetCPU)';
|
||||
if not GlobalMacroList.SubstituteStr(ParsedTarget) then
|
||||
raise Exception.CreateFmt('ReadAndParseOptions: Cannot substitute macros "%s".',
|
||||
[ParsedTarget]);
|
||||
t[1]:=Now;
|
||||
// FPC with option -i
|
||||
Lines:=RunTool(fCompilerExecutable, ParsedTarget + ' -i');
|
||||
t[2]:=Now;
|
||||
try
|
||||
if Lines = Nil then Exit(mrCancel);
|
||||
Result := ParseI(Lines);
|
||||
@ -1033,14 +1038,21 @@ begin
|
||||
finally
|
||||
Lines.Free;
|
||||
end;
|
||||
t[3]:=Now;
|
||||
// FPC with option -h
|
||||
Lines:=RunTool(fCompilerExecutable, ParsedTarget + ' -h');
|
||||
t[4]:=Now;
|
||||
try
|
||||
if Lines = Nil then Exit(mrCancel);
|
||||
Result := ParseH(Lines);
|
||||
finally
|
||||
Lines.Free;
|
||||
end;
|
||||
t[5]:=Now;
|
||||
debugln(['TCompilerOptReader.ReadAndParseOptions ']);
|
||||
for i:=1 to high(t) do begin
|
||||
debugln([' ',i,' ',round((t[i]-t[i-1])*86400*1000)]);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TCompilerOptReader.FilterOptions(aFilter: string; aOnlySelected: Boolean): Boolean;
|
||||
@ -1203,6 +1215,7 @@ begin
|
||||
fReader.ErrorMsg := 'Error parsing options: '+E.Message;
|
||||
end;
|
||||
fReadTime := Now-StartTime;
|
||||
debugln(['TCompilerOptThread.Execute ',round(fReadTime*86400*1000)]);
|
||||
end;
|
||||
|
||||
|
||||
|
37
ide/main.pp
37
ide/main.pp
@ -1064,34 +1064,37 @@ var
|
||||
procedure AddHelp(Args: array of const);
|
||||
var
|
||||
i: Integer;
|
||||
s: String;
|
||||
begin
|
||||
s:='';
|
||||
for i := Low(Args) to High(Args) do
|
||||
begin
|
||||
case Args[i].VType of
|
||||
vtInteger: AHelp.Add(dbgs(Args[i].vinteger));
|
||||
vtInt64: AHelp.Add(dbgs(Args[i].VInt64^));
|
||||
vtQWord: AHelp.Add(dbgs(Args[i].VQWord^));
|
||||
vtBoolean: AHelp.Add(dbgs(Args[i].vboolean));
|
||||
vtExtended: AHelp.Add(dbgs(Args[i].VExtended^));
|
||||
vtInteger: s+=dbgs(Args[i].vinteger);
|
||||
vtInt64: s+=dbgs(Args[i].VInt64^);
|
||||
vtQWord: s+=dbgs(Args[i].VQWord^);
|
||||
vtBoolean: s+=dbgs(Args[i].vboolean);
|
||||
vtExtended: s+=dbgs(Args[i].VExtended^);
|
||||
{$ifdef FPC_CURRENCY_IS_INT64}
|
||||
// fpc 2.x has troubles in choosing the right dbgs()
|
||||
// so we convert here
|
||||
vtCurrency: AHelp.Add(dbgs(int64(Args[i].vCurrency^)/10000, 4));
|
||||
vtCurrency: s+=dbgs(int64(Args[i].vCurrency^)/10000, 4);
|
||||
{$else}
|
||||
vtCurrency: AHelp.Add(dbgs(Args[i].vCurrency^));
|
||||
vtCurrency: s+=dbgs(Args[i].vCurrency^);
|
||||
{$endif}
|
||||
vtString: AHelp.Add(Args[i].VString^);
|
||||
vtAnsiString: AHelp.Add(AnsiString(Args[i].VAnsiString));
|
||||
vtChar: AHelp.Add(Args[i].VChar);
|
||||
vtPChar: AHelp.Add(Args[i].VPChar);
|
||||
vtPWideChar: AHelp.Add(Args[i].VPWideChar);
|
||||
vtWideChar: AHelp.Add(Args[i].VWideChar{%H-});
|
||||
vtWidestring: AHelp.Add(WideString(Args[i].VWideString){%H-});
|
||||
vtObject: AHelp.Add(DbgSName(Args[i].VObject));
|
||||
vtClass: AHelp.Add(DbgSName(Args[i].VClass));
|
||||
vtPointer: AHelp.Add(Dbgs(Args[i].VPointer));
|
||||
vtString: s+=Args[i].VString^;
|
||||
vtAnsiString: s+=AnsiString(Args[i].VAnsiString);
|
||||
vtChar: s+=Args[i].VChar;
|
||||
vtPChar: s+=Args[i].VPChar;
|
||||
vtPWideChar: s+=Args[i].VPWideChar;
|
||||
vtWideChar: s+=Args[i].VWideChar{%H-};
|
||||
vtWidestring: s+=WideString(Args[i].VWideString){%H-};
|
||||
vtObject: s+=DbgSName(Args[i].VObject);
|
||||
vtClass: s+=DbgSName(Args[i].VClass);
|
||||
vtPointer: s+=Dbgs(Args[i].VPointer);
|
||||
end;
|
||||
end;
|
||||
AHelp.Add(s);
|
||||
end;
|
||||
|
||||
procedure WriteHelp(const AText: string);
|
||||
|
Loading…
Reference in New Issue
Block a user