2
0
Эх сурвалжийг харах

* Endianness

git-svn-id: trunk@47743 -
(cherry picked from commit 7f2c8857da7d6c320578e7465dd8200e5f73c502)
michael 4 жил өмнө
parent
commit
a0f786f14c

+ 3 - 0
utils/fpdoc/fpdocproj.pas

@@ -51,6 +51,7 @@ Type
     FCPUTarget: String;
     FDefaultPackageName: String;
     FEmitNotes: Boolean;
+    FEndianNess: String;
     FFormat: String;
     FHidePrivate: Boolean;
     FHideProtected: Boolean;
@@ -69,6 +70,7 @@ Type
   Published
     Property OSTarget : String Read FOSTarget Write FOStarget;
     Property CPUTarget : String Read FCPUTarget Write FCPUTarget;
+    Property EndianNess : String Read FEndianNess Write FEndianNess;
     Property Language : String Read FLanguage Write fLanguage;
     Property Backend : String Read FFormat Write FFormat;
     Property BackendOptions : TStrings Read FBackEndoptions Write SetBackendOptions;
@@ -81,6 +83,7 @@ Type
     Property DefaultPackageName : String Read FDefaultPackageName Write FDefaultPackageName;
     Property DontTrim : Boolean Read FDontTrim Write FDontTrim;
     Property EmitNotes : Boolean Read FEmitNotes Write FEmitNotes;
+
   end;
 
   { TFPDocProject }

+ 12 - 3
utils/fpdoc/mkfpdoc.pp

@@ -12,6 +12,11 @@ const
   DefCPUTarget   = {$I %FPCTARGETCPU%};
   DefFPCVersion  = {$I %FPCVERSION%};
   DefFPCDate     = {$I %FPCDATE%};
+{$IFDEF FPC_BIG_ENDIAN}
+  DefEndianNess = 'FPC_BIG_ENDIAN';
+{$ELSE}
+  DefEndianNess = 'FPC_LITTLE_ENDIAN';
+{$ENDIF}
 
 Type
 
@@ -126,7 +131,7 @@ begin
        SplitInputFIleOption(S,UN,Opts);
        if CompareText(ChangeFileExt(ExtractFileName(Un),''),AUnitName)=0 then
          begin
-         AInputFile:=FixInputFile(UN)+' '+Opts;
+         AInputFile:=FixInputFile(UN)+' '+Opts+' -d'+Options.EndianNess;
          OSTarget:=FProject.Options.OSTarget;
          CPUTarget:=FProject.Options.CPUTarget;
          FProcessedUnits.Add(UN);
@@ -197,6 +202,7 @@ begin
   FProject.Options.StopOnParseError:=False;
   FProject.Options.CPUTarget:=DefCPUTarget;
   FProject.Options.OSTarget:=DefOSTarget;
+  FProject.Options.EndianNess:=DefEndianNess;
   FProcessedUnits:=TStringList.Create;
   FProjectMacros:=TStringList.Create;
 end;
@@ -243,7 +249,8 @@ begin
       Free;
     end;
   // Output content files
-  Writeln('Content file : ',APackage.ContentFile);
+  if FVerbose then
+    DoLog('Content file : '+APackage.ContentFile);
   if Length(APackage.ContentFile) > 0 then
     Engine.WriteContentFile(APackage.ContentFile);
 end;
@@ -292,13 +299,15 @@ begin
       try
         // get options from input packages
         SplitInputFileOption(APackage.Inputs[i],Cmd,Arg);
+        arg:=Arg+' -d'+Options.EndianNess;
         // make absolute filepath
         Cmd:=FixInputFile(Cmd);
         if FProcessedUnits.IndexOf(Cmd)=-1 then
           begin
           FProcessedUnits.Add(Cmd);
+
           // Parce sources for OS Target
-          //WriteLn(Format('Parcing unit: %s', [ExtractFilenameOnly(Cmd)]));
+          //WriteLn(Format('Parsing unit: %s', [ExtractFilenameOnly(Cmd)]));
           ParseSource(Engine,Cmd+' '+Arg, Options.OSTarget, Options.CPUTarget,[poUseStreams]);
           end;
       except