mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-02 07:10:27 +02:00
+ initial (and so far experimental) implementation of -ix to output -i in xml format for further automated processing
git-svn-id: trunk@48897 -
This commit is contained in:
parent
9fbaa28df7
commit
b0772ae749
@ -212,6 +212,7 @@ var
|
||||
p : pchar;
|
||||
hs,hs1,hs3,s : TCmdStr;
|
||||
J: longint;
|
||||
xmloutput: Text;
|
||||
const
|
||||
NewLineStr = '$\n';
|
||||
OSTargetsPlaceholder = '$OSTARGETS';
|
||||
@ -407,6 +408,17 @@ const
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure ListOptimizationsXML;
|
||||
var
|
||||
opt: toptimizerswitch;
|
||||
begin
|
||||
WriteLn(xmloutput,'<optimizations>');
|
||||
for opt:=low(toptimizerswitch) to high(toptimizerswitch) do
|
||||
if OptimizerSwitchStr[opt]<>'' then
|
||||
WriteLn(xmloutput,'<optimization name="',OptimizerSwitchStr[opt],'"/>');
|
||||
WriteLn(xmloutput,'</optimizations>');
|
||||
end;
|
||||
|
||||
procedure ListWPOptimizations (OrigString: TCmdStr);
|
||||
var
|
||||
wpopt: twpoptimizerswitch;
|
||||
@ -502,6 +514,23 @@ const
|
||||
{$POP}
|
||||
end;
|
||||
|
||||
procedure ListControllerTypesXML;
|
||||
var
|
||||
controllertype : tcontrollertype;
|
||||
begin
|
||||
{$PUSH}
|
||||
{$WARN 6018 OFF} (* Unreachable code due to compile time evaluation *)
|
||||
if (ControllerSupport) then
|
||||
begin
|
||||
WriteLn(xmloutput,'<controllertypes>');
|
||||
for controllertype:=low(tcontrollertype) to high(tcontrollertype) do
|
||||
if embedded_controllers[controllertype].ControllerTypeStr<>'' then
|
||||
WriteLn(xmloutput,'<controllertype name="',embedded_controllers[controllertype].ControllerTypeStr,'"/>');
|
||||
WriteLn(xmloutput,'</controllertypes>');
|
||||
end;
|
||||
{$POP}
|
||||
end;
|
||||
|
||||
procedure ListFeatures (OrigString: TCmdStr);
|
||||
var
|
||||
Feature: TFeature;
|
||||
@ -627,31 +656,44 @@ begin
|
||||
Comment(V_Normal,s);
|
||||
end;
|
||||
end
|
||||
else if Copy(More,1,1) = 'x' then
|
||||
begin
|
||||
Assign(xmloutput,Copy(More,2,length(More)-1));
|
||||
Rewrite(xmloutput);
|
||||
WriteLn(xmloutput,'<?xml version="1.0" encoding="utf-8"?>');
|
||||
WriteLn(xmloutput,'<fpcoutput>');
|
||||
WriteLn(xmloutput,'<info>');
|
||||
ListOptimizationsXML;
|
||||
ListControllerTypesXML;
|
||||
WriteLn(xmloutput,'</info>');
|
||||
WriteLn(xmloutput,'</fpcoutput>');
|
||||
Close(xmloutput);
|
||||
end
|
||||
else
|
||||
begin
|
||||
J := 1;
|
||||
while J <= Length (More) do
|
||||
begin
|
||||
if J > 1 then
|
||||
Comment(V_Normal,''); (* Put empty line between multiple sections *)
|
||||
case More [J] of
|
||||
'a': ListABITargets ('');
|
||||
'b': Comment(V_Normal, cgbackend2str[cgbackend]);
|
||||
'c': ListCPUInstructionSets ('');
|
||||
'f': ListFPUInstructionSets ('');
|
||||
'i': ListAsmModes ('');
|
||||
'm': ListModeswitches ('');
|
||||
'o': ListOptimizations ('');
|
||||
'r': ListFeatures ('');
|
||||
't': ListOSTargets ('');
|
||||
'u': ListControllerTypes ('');
|
||||
'w': ListWPOptimizations ('');
|
||||
else
|
||||
IllegalPara ('-i' + More);
|
||||
J := 1;
|
||||
while J <= Length (More) do
|
||||
begin
|
||||
if J > 1 then
|
||||
Comment(V_Normal,''); (* Put empty line between multiple sections *)
|
||||
case More [J] of
|
||||
'a': ListABITargets ('');
|
||||
'b': Comment(V_Normal, cgbackend2str[cgbackend]);
|
||||
'c': ListCPUInstructionSets ('');
|
||||
'f': ListFPUInstructionSets ('');
|
||||
'i': ListAsmModes ('');
|
||||
'm': ListModeswitches ('');
|
||||
'o': ListOptimizations ('');
|
||||
'r': ListFeatures ('');
|
||||
't': ListOSTargets ('');
|
||||
'u': ListControllerTypes ('');
|
||||
'w': ListWPOptimizations ('');
|
||||
else
|
||||
IllegalPara ('-i' + More);
|
||||
end;
|
||||
Inc (J);
|
||||
end;
|
||||
Inc (J);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
StopOptions(0);
|
||||
end;
|
||||
|
||||
@ -1952,7 +1994,7 @@ begin
|
||||
'i' :
|
||||
begin
|
||||
if (More='') or
|
||||
(More [1] in ['a', 'b', 'c', 'f', 'i', 'm', 'o', 'r', 't', 'u', 'w']) then
|
||||
(More [1] in ['a', 'b', 'c', 'f', 'i', 'm', 'o', 'r', 't', 'u', 'w', 'x']) then
|
||||
WriteInfo (More)
|
||||
else
|
||||
QuickInfo:=QuickInfo+More;
|
||||
|
Loading…
Reference in New Issue
Block a user