[packages/fpc] - fix building docs, again
baggins
baggins at pld-linux.org
Tue Jun 6 21:07:31 CEST 2017
commit dd3f385efe2d7ff5ec60561e80f769e12736ed84
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Tue Jun 6 21:07:14 2017 +0200
- fix building docs, again
fpc-r34749.patch | 390 ++++++++++++++++++++++++++++++++++++++++++++++++++++
fpc.spec | 6 +-
fpcdocs-r1260.patch | 20 +--
3 files changed, 405 insertions(+), 11 deletions(-)
---
diff --git a/fpc.spec b/fpc.spec
index 31bfcbd..4413cf8 100644
--- a/fpc.spec
+++ b/fpc.spec
@@ -24,6 +24,7 @@ Patch2: %{name}-gdb.patch
Patch3: fpc-r32374.patch
Patch4: fpcdocs-r1260.patch
Patch5: fpc-man.patch
+Patch6: fpc-r34749.patch
URL: http://www.freepascal.org/
BuildRequires: binutils-devel >= 3:2.17.50
BuildRequires: gpm-devel
@@ -135,8 +136,9 @@ Dokumentacja do fpc w formacie PDF.
%patch1 -p1
%patch2 -p1
%patch3 -p0
-#%patch4 -p0
+%patch4 -p0
%patch5 -p1
+%patch6 -p0
%ifarch %{ix86}
tar xf %{SOURCE1}
@@ -208,6 +210,7 @@ PP=`pwd`/bin/lib/%{name}/%{_bver}/ppc%{_bname}
NEWPP=`pwd`/fpcsrc/compiler/ppc%{_bname}
NEWFPDOC=`pwd`/fpcsrc/utils/fpdoc/bin/%{_barch}-linux/fpdoc
DATA2INC=`pwd`/fpcsrc/utils/bin/%{_barch}-linux/data2inc
+FPCSRCDIR=`pwd`/fpcsrc
# DO NOT PUT $RPM_OPT_FLAGS IN OPT, IT DOES NOT WORK - baggins
case "%{_build_cpu}" in
@@ -251,6 +254,7 @@ export save_size=10000
%{__make} -j1 -C fpcdocs \
FPDOC=$NEWFPDOC \
FPC="$NEWPP" \
+ FPCSRCDIR="$FPCSRCDIR" \
pdf
%endif
diff --git a/fpc-r34749.patch b/fpc-r34749.patch
new file mode 100644
index 0000000..b4919eb
--- /dev/null
+++ b/fpc-r34749.patch
@@ -0,0 +1,390 @@
+Index: fpcsrc/utils/fpdoc/dglobals.pp
+===================================================================
+--- fpcsrc/utils/fpdoc/dglobals.pp (revision 34748)
++++ fpcsrc/utils/fpdoc/dglobals.pp (revision 34749)
+@@ -161,6 +161,7 @@
+ SUsageOption120 = ' At least one input option is required.';
+ SUsageOption130 = '--input-dir=Dir Add All *.pp and *.pas files in Dir to list of input files';
+ SUsageOption140 = '--lang=lng Select output language.';
++ SUsageOption145 = '--macro=name=value Define a macro to preprocess the project file with.';
+ SUsageOption150 = '--ostarget=value Set the target OS for the scanner.';
+ SUsageOption160 = '--output=name use name as the output name.';
+ SUsageOption170 = ' Each backend interprets this as needed.';
+@@ -183,6 +184,7 @@
+ SUsageFormats = 'The following output formats are supported by this fpdoc:';
+ SUsageBackendHelp = 'Specify an output format, combined with --help to get more help for this backend.';
+ SUsageFormatSpecific = 'Output format "%s" supports the following options:';
++ SCmdLineErrInvalidMacro = 'Macro needs to be in the form name=value';
+
+ SCmdLineInvalidOption = 'Ignoring unknown option "%s"';
+ SCmdLineInvalidFormat = 'Invalid format "%s" specified';
+Index: fpcsrc/utils/fpdoc/mkfpdoc.pp
+===================================================================
+--- fpcsrc/utils/fpdoc/mkfpdoc.pp (revision 34748)
++++ fpcsrc/utils/fpdoc/mkfpdoc.pp (revision 34749)
+@@ -26,6 +26,7 @@
+ FOnLog: TPasParserLogHandler;
+ FPParserLogEvents: TPParserLogEvents;
+ FProject : TFPDocProject;
++ FProjectMacros: TStrings;
+ FScannerLogEvents: TPScannerLogEvents;
+ FVerbose: Boolean;
+ function GetOptions: TEngineOptions;
+@@ -32,6 +33,7 @@
+ function GetPackages: TFPDocPackages;
+ procedure SetBaseDescrDir(AValue: String);
+ procedure SetBaseInputDir(AValue: String);
++ procedure SetProjectMacros(AValue: TStrings);
+ Protected
+ Function FixInputFile(Const AFileName : String) : String;
+ Function FixDescrFile(Const AFileName : String) : String;
+@@ -58,6 +60,8 @@
+ // When set, they will be prepended to non-absolute filenames.
+ Property BaseInputDir : String Read FBaseInputDir Write SetBaseInputDir;
+ Property BaseDescrDir : String Read FBaseDescrDir Write SetBaseDescrDir;
++ // Macros used when loading the project file
++ Property ProjectMacros : TStrings Read FProjectMacros Write SetProjectMacros;
+ end;
+
+ implementation
+@@ -81,13 +85,13 @@
+ end;
+ end;
+
+-Procedure TFPDocCreator.DoLog(Const Msg: String);
++procedure TFPDocCreator.DoLog(const Msg: String);
+ begin
+ If Assigned(OnLog) then
+ OnLog(Self,Msg);
+ end;
+
+-procedure TFPDocCreator.DoLog(Const Fmt: String; Args: Array of Const);
++procedure TFPDocCreator.DoLog(const Fmt: String; Args: array of const);
+ begin
+ DoLog(Format(Fmt,Args));
+ end;
+@@ -132,7 +136,7 @@
+ Result:=FProject.Packages;
+ end;
+
+-Function TFPDocCreator.FixInputFile(Const AFileName: String): String;
++function TFPDocCreator.FixInputFile(const AFileName: String): String;
+ begin
+ Result:=AFileName;
+ If Result='' then exit;
+@@ -140,7 +144,7 @@
+ Result:=BaseInputDir+Result;
+ end;
+
+-Function TFPDocCreator.FixDescrFile(Const AFileName: String): String;
++function TFPDocCreator.FixDescrFile(const AFileName: String): String;
+ begin
+ Result:=AFileName;
+ If Result='' then exit;
+@@ -164,13 +168,19 @@
+ FBaseInputDir:=IncludeTrailingPathDelimiter(FBaseInputDir);
+ end;
+
+-Procedure TFPDocCreator.DoBeforeEmitNote(Sender: TObject; Note: TDomElement;
+- Var EmitNote: Boolean);
++procedure TFPDocCreator.SetProjectMacros(AValue: TStrings);
+ begin
++ if FProjectMacros=AValue then Exit;
++ FProjectMacros.Assign(AValue);
++end;
++
++procedure TFPDocCreator.DoBeforeEmitNote(Sender: TObject; Note: TDomElement;
++ var EmitNote: Boolean);
++begin
+ EmitNote:=True;
+ end;
+
+-Constructor TFPDocCreator.Create(AOwner: TComponent);
++constructor TFPDocCreator.Create(AOwner: TComponent);
+ begin
+ inherited Create(AOwner);
+ FProject:=TFPDocProject.Create(Self);
+@@ -178,12 +188,14 @@
+ FProject.Options.CPUTarget:=DefCPUTarget;
+ FProject.Options.OSTarget:=DefOSTarget;
+ FProcessedUnits:=TStringList.Create;
++ FProjectMacros:=TStringList.Create;
+ end;
+
+-Destructor TFPDocCreator.Destroy;
++destructor TFPDocCreator.Destroy;
+ begin
+ FreeAndNil(FProcessedUnits);
+ FreeAndNil(FProject);
++ FreeAndNil(FProjectMacros);
+ inherited Destroy;
+ end;
+
+@@ -221,7 +233,7 @@
+ Engine.WriteContentFile(APackage.ContentFile);
+ end;
+
+-Procedure TFPDocCreator.CreateDocumentation(APackage: TFPDocPackage;
++procedure TFPDocCreator.CreateDocumentation(APackage: TFPDocPackage;
+ ParseOnly: Boolean);
+
+ var
+@@ -282,7 +294,7 @@
+ end;
+ end;
+
+-Procedure TFPDocCreator.CreateProjectFile(Const AFileName: string);
++procedure TFPDocCreator.CreateProjectFile(const AFileName: string);
+ begin
+ With TXMLFPDocOptions.Create(Self) do
+ try
+@@ -292,11 +304,14 @@
+ end;
+ end;
+
+-Procedure TFPDocCreator.LoadProjectFile(Const AFileName: string);
++procedure TFPDocCreator.LoadProjectFile(const AFileName: string);
+ begin
+ With TXMLFPDocOptions.Create(self) do
+ try
+- LoadOptionsFromFile(FProject,AFileName);
++ if (ProjectMacros.Count>0) then
++ LoadOptionsFromFile(FProject,AFileName,ProjectMacros)
++ else
++ LoadOptionsFromFile(FProject,AFileName,Nil);
+ finally
+ Free;
+ end;
+Index: fpcsrc/utils/fpdoc/fpdoc.pp
+===================================================================
+--- fpcsrc/utils/fpdoc/fpdoc.pp (revision 34748)
++++ fpcsrc/utils/fpdoc/fpdoc.pp (revision 34749)
+@@ -90,6 +90,7 @@
+ Writeln(SUsageOption120);
+ Writeln(SUsageOption130);
+ Writeln(SUsageOption140);
++ Writeln(SUsageOption145);
+ Writeln(SUsageOption150);
+ Writeln(SUsageOption160);
+ Writeln(SUsageOption170);
+@@ -181,11 +182,12 @@
+ Const
+ SOptProject = '--project=';
+ SOptPackage = '--package=';
+-
++ SOptMacro = '--macro=';
++
+ Function ProjectOpt(Const s : string) : boolean;
+
+ begin
+- Result:=(Copy(s,1,3)='-p=') or (Copy(s,1,Length(SOptProject))=SOptProject);
++ Result:=(Copy(s,1,3)='-p=') or (Copy(s,1,Length(SOptProject))=SOptProject) or (Copy(s,1,Length(SOptMacro))=SOptMacro);
+ end;
+
+ Function PackageOpt(Const s : string) : boolean;
+@@ -286,7 +288,7 @@
+
+ var
+ i: Integer;
+- Cmd, Arg: String;
++ ProjectFileName,Cmd, Arg: String;
+
+ begin
+ if (s = '-h') or (s = '--help') then
+@@ -325,6 +327,12 @@
+ AddDirToFileList(SelectedPackage.Descriptions, Arg, '*.xml')
+ else if (Cmd = '--base-descr-dir') then
+ FCreator.BaseDescrDir:=Arg
++ else if (Cmd = '--macro') then
++ begin
++ If Pos('=',Arg)=0 then
++ WriteLn(StdErr, Format(SCmdLineErrInvalidMacro, [Arg]));
++ FCreator.ProjectMacros.Add(Arg);
++ end
+ else if (Cmd = '-f') or (Cmd = '--format') then
+ begin
+ Arg:=UpperCase(Arg);
+@@ -384,23 +392,28 @@
+ Procedure TFPDocApplication.DoRun;
+
+ begin
+-{$IFDEF Unix}
+- gettext.TranslateResourceStrings('/usr/local/share/locale/%s/LC_MESSAGES/fpdoc.mo');
+-{$ELSE}
+- gettext.TranslateResourceStrings('intl/fpdoc.%s.mo');
+-{$ENDIF}
+- WriteLn(STitle);
+- WriteLn(Format(SVersion, [DefFPCVersion, DefFPCDate]));
+- WriteLn(SCopyright1);
+- WriteLn(SCopyright2);
+- WriteLn;
+- ParseCommandLine;
+- if (FWriteProjectFile<>'') then
+- FCreator.CreateProjectFile(FWriteProjectFile)
+- else
+- FCreator.CreateDocumentation(FPackage,FDryRun);
+- WriteLn(SDone);
+- Terminate;
++ try
++ {$IFDEF Unix}
++ gettext.TranslateResourceStrings('/usr/local/share/locale/%s/LC_MESSAGES/fpdoc.mo');
++ {$ELSE}
++ gettext.TranslateResourceStrings('intl/fpdoc.%s.mo');
++ {$ENDIF}
++ WriteLn(STitle);
++ WriteLn(Format(SVersion, [DefFPCVersion, DefFPCDate]));
++ WriteLn(SCopyright1);
++ WriteLn(SCopyright2);
++ WriteLn;
++ ParseCommandLine;
++ if (FWriteProjectFile<>'') then
++ FCreator.CreateProjectFile(FWriteProjectFile)
++ else
++ FCreator.CreateDocumentation(FPackage,FDryRun);
++ WriteLn(SDone);
++ Terminate;
++ except
++ ExitCode:=1;
++ Raise;
++ end;
+ end;
+
+ constructor TFPDocApplication.Create(AOwner: TComponent);
+Index: fpcsrc/utils/fpdoc/fpdocxmlopts.pas
+===================================================================
+--- fpcsrc/utils/fpdoc/fpdocxmlopts.pas (revision 34748)
++++ fpcsrc/utils/fpdoc/fpdocxmlopts.pas (revision 34749)
+@@ -13,6 +13,7 @@
+ TXMLFPDocOptions = Class(TComponent)
+ private
+ Protected
++ Function PreProcessFile(const AFileName: String; Macros: TStrings): TStream; virtual;
+ Procedure Error(Const Msg : String);
+ Procedure Error(Const Fmt : String; Args : Array of Const);
+ Procedure LoadPackage(APackage : TFPDocPackage; E : TDOMElement); virtual;
+@@ -24,7 +25,7 @@
+ procedure SaveInputFile(const AInputFile: String; XML: TXMLDocument; AParent: TDOMElement);virtual;
+ Procedure SavePackage(APackage : TFPDocPackage; XML : TXMLDocument; AParent : TDOMElement); virtual;
+ Public
+- Procedure LoadOptionsFromFile(AProject : TFPDocProject; Const AFileName : String);
++ Procedure LoadOptionsFromFile(AProject : TFPDocProject; Const AFileName : String; Macros : TStrings = Nil);
+ Procedure LoadFromXML(AProject : TFPDocProject; XML : TXMLDocument); virtual;
+ Procedure SaveOptionsToFile(AProject : TFPDocProject; Const AFileName : String);
+ procedure SaveToXML(AProject : TFPDocProject; ADoc: TXMLDocument); virtual;
+@@ -65,7 +66,7 @@
+ end;
+
+
+-procedure TXMLFPDocOptions.Error(Const Msg: String);
++procedure TXMLFPDocOptions.Error(const Msg: String);
+ begin
+ Raise EXMLFPDoc.Create(Msg);
+ end;
+@@ -248,7 +249,8 @@
+ end;
+ end;
+
+-Procedure TXMLFPDocOptions.SaveEngineOptions(Options : TEngineOptions; XML : TXMLDocument; AParent : TDOMElement);
++procedure TXMLFPDocOptions.SaveEngineOptions(Options: TEngineOptions;
++ XML: TXMLDocument; AParent: TDOMElement);
+
+ procedure AddStr(const n, v: string);
+ var
+@@ -288,7 +290,8 @@
+ end;
+
+
+-Procedure TXMLFPDocOptions.SaveInputFile(Const AInputFile : String; XML : TXMLDocument; AParent: TDOMElement);
++procedure TXMLFPDocOptions.SaveInputFile(const AInputFile: String;
++ XML: TXMLDocument; AParent: TDOMElement);
+
+ Var
+ F,O : String;
+@@ -299,7 +302,8 @@
+ AParent['options']:=O;
+ end;
+
+-Procedure TXMLFPDocOptions.SaveDescription(Const ADescription : String; XML : TXMLDocument; AParent: TDOMElement);
++procedure TXMLFPDocOptions.SaveDescription(const ADescription: String;
++ XML: TXMLDocument; AParent: TDOMElement);
+
+ begin
+ AParent['file']:=ADescription;
+@@ -317,7 +321,8 @@
+ AParent['prefix']:=Copy(AImportFile,i+1,Length(AImportFile));
+ end;
+
+-Procedure TXMLFPDocOptions.SavePackage(APackage: TFPDocPackage; XML : TXMLDocument; AParent: TDOMElement);
++procedure TXMLFPDocOptions.SavePackage(APackage: TFPDocPackage;
++ XML: TXMLDocument; AParent: TDOMElement);
+
+
+ var
+@@ -358,17 +363,55 @@
+ end;
+
+
++Function TXMLFPDocOptions.PreprocessFile(const AFileName: String; Macros : TStrings) : TStream;
+
+-procedure TXMLFPDocOptions.LoadOptionsFromFile(AProject: TFPDocProject; const AFileName: String);
++Var
++ F : TFileStream;
++ P : TTemplateParser;
++ I : Integer;
++ N,V : String;
+
++begin
++ Result:=Nil;
++ P:=Nil;
++ F:=TFileStream.Create(AFileName,fmOpenRead or fmShareDenyWrite);
++ try
++ P:=TTemplateParser.Create;
++ P.AllowTagParams:=False;
++ P.StartDelimiter:='{{';
++ P.EndDelimiter:='}}';
++ For I:=0 to Macros.Count-1 do
++ begin
++ Macros.GetNameValue(I,N,V);
++ P.Values[N]:=V;
++ end;
++ Result:=TMemoryStream.Create;
++ P.ParseStream(F,Result);
++ Result.Position:=0;
++ finally
++ FreeAndNil(F);
++ FreeAndNil(P);
++ end;
++end;
++
++procedure TXMLFPDocOptions.LoadOptionsFromFile(AProject: TFPDocProject;
++ const AFileName: String; Macros: TStrings = Nil);
++
+ Var
+ XML : TXMLDocument;
++ S : TStream;
+
+ begin
+- ReadXMLFile(XML,AFileName);
++ XML:=Nil;
++ if Macros=Nil then
++ S:=TFileStream.Create(AFileName,fmOpenRead or fmShareDenyWrite)
++ else
++ S:=PreProcessFile(AFileName,Macros);
+ try
++ ReadXMLFile(XML,S);
+ LoadFromXML(AProject,XML);
+ finally
++ FreeAndNil(S);
+ FreeAndNil(XML);
+ end;
+ end;
+@@ -393,7 +436,8 @@
+ LoadEngineOptions(AProject.Options,N as TDOMElement);
+ end;
+
+-Procedure TXMLFPDocOptions.SaveOptionsToFile(AProject: TFPDocProject; const AFileName: String);
++procedure TXMLFPDocOptions.SaveOptionsToFile(AProject: TFPDocProject;
++ const AFileName: String);
+
+ Var
+ XML : TXMLDocument;
diff --git a/fpcdocs-r1260.patch b/fpcdocs-r1260.patch
index 59a5ede..59808b3 100644
--- a/fpcdocs-r1260.patch
+++ b/fpcdocs-r1260.patch
@@ -6,13 +6,13 @@ Index: fpcdocs/Makefile
$(RTLMAKESKEL) $(RTLCHARACTER) --output=character.new.xml
./cleanxml $(RTLNEWXML)
rtl.inc: $(RTLXML)
-- $(FPDOC) --output=rtl.inc --project=rtl-project.xml --format=latex
-+ $(FPDOC) --base-input-dir=$(FPCSRCDIR)/rtl --output=rtl.inc --project=rtl-project.xml --format=latex
+- $(FPDOC) $(FPDOCOPTS) --output=rtl.inc --project=rtl-project.xml --format=latex
++ $(FPDOC) $(FPDOCOPTS) --base-input-dir=$(FPCSRCDIR)/rtl --output=rtl.inc --project=rtl-project.xml --format=latex
fcl.inc: $(FCLXML)
-- $(FPDOC) --output=fcl.inc --project=fcl-project.xml --format=latex
-+ $(FPDOC) --base-input-dir=$(FPCSRCDIR)/packages --output=fcl.inc --project=fcl-project.xml --format=latex
+- $(FPDOC) $(FPDOCOPTS) --output=fcl.inc --project=fcl-project.xml --format=latex
++ $(FPDOC) $(FPDOCOPTS) --base-input-dir=$(FPCSRCDIR)/packages --output=fcl.inc --project=fcl-project.xml --format=latex
fclres.inc: $(FCLRESXML)
- $(FPDOC) --output=fclres.inc $(FCLRESOPTS) --format=latex
+ $(FPDOC) $(FPDOCOPTS) --output=fclres.inc $(FCLRESOPTS) --format=latex
RTFFILES = $(addsuffix .rtf,$(RTFS))
Index: fpcdocs/Makefile.fpc
===================================================================
@@ -22,12 +22,12 @@ Index: fpcdocs/Makefile.fpc
#####################################################################
rtl.inc: $(RTLXML)
-- $(FPDOC) --output=rtl.inc --project=rtl-project.xml --format=latex
-+ $(FPDOC) --base-input-dir=$(FPCSRCDIR)/rtl --output=rtl.inc --project=rtl-project.xml --format=latex
+- $(FPDOC) $(FPDOCOPTS) --output=rtl.inc --project=rtl-project.xml --format=latex
++ $(FPDOC) $(FPDOCOPTS) --base-input-dir=$(FPCSRCDIR)/rtl --output=rtl.inc --project=rtl-project.xml --format=latex
fcl.inc: $(FCLXML)
-- $(FPDOC) --output=fcl.inc --project=fcl-project.xml --format=latex
-+ $(FPDOC) --base-input-dir=$(FPCSRCDIR)/packages --output=fcl.inc --project=fcl-project.xml --format=latex
+- $(FPDOC) $(FPDOCOPTS) --output=fcl.inc --project=fcl-project.xml --format=latex
++ $(FPDOC) $(FPDOCOPTS) --base-input-dir=$(FPCSRCDIR)/packages --output=fcl.inc --project=fcl-project.xml --format=latex
fclres.inc: $(FCLRESXML)
- $(FPDOC) --output=fclres.inc $(FCLRESOPTS) --format=latex
+ $(FPDOC) $(FPDOCOPTS) --output=fclres.inc $(FCLRESOPTS) --format=latex
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/fpc.git/commitdiff/dd3f385efe2d7ff5ec60561e80f769e12736ed84
More information about the pld-cvs-commit
mailing list