Bernd schrieb:
2011/12/30 Hans-Peter Diettrich <[email protected]>:

I don't understand why (platform specific) shell scripts shall be used for
documentation purposes - is Pascal not suited for such tasks? ;-)

How about putting all the functionality necessary to build the
documentation into lazbuild? It already has an option to build the IDE
(lazbuild --build-ide), it has all units needed to read current
Lazarus configuration, paths, etc, wouldn't it be consequent to make
it also able to replace the shell scripts to build the docs (lazbuild
--build-chmdoc)?

IMO there exist too many user options, which are not reflected in a standard build, e.g. the output documentation directories on the server or user machine.

At least the generation of the documentation projects should be automated somehow, then every user can modify these projects according to his needs. I go different ways for building FPC and Lazarus documentation projects:

The RTL and FCL documentation is generated by a Makefile, so that the generated commandline can be recorded instead of excecuted (-n >mydoc.bat). The LazDoc Manager imports these commandlines and creates the project files. An additional Makefile option could write the project files immediately, instead of creating the output.

The documentation of Lazarus packages instead shall be collected from the LPK files (not yet complete). The Makefile here is of little help, because the only mentioned source file is the synthetic allunits.pas file, which would deserve another parse. But of course options could be added (to LazBuild or the Makefile) to create the documentation (projects) like for the FPC documentation.

Once these project files exist, they can be modified or configured by the user, and the final documentation can be built in a simple script, containing lines like ("?" to be substituted):
fpdoc --project=? --format=? --output=?

Merging multiple documentation packages into one output file is not supported by fpdoc, so that e.g. the LCL documentation in one file would require to import the LCL, LCLBase and LazUtils packages into the same LCL package. I've put this feature into the LazDoc Manager already.

DoDi


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to