Project file structure
The top node is always a node. This node can contain only 2 nodes: a node and a node; All other nodes will be ignored.
The options node
The tag that appears below the node specifies the options for the project. It contains a series of tags. No other nodes should appear under the tag.
Example:
<options> <option name="ostarget" value="Linux"/> <option name="cputarget" value="x86_64"/> <option name="hide-protected" value="true"/> </options>
The option node
Each tag under the tag specifies an option.
Each tag has 2 attributes: and value. The name correspond to the command-line options that fpdoc supports. This attribute is mandatory. The attribute contains the value for the node. It is also mandatory.
For command-line switches, only 2 values are accepted: true and false.
Both general options and format-specific options can be specified this way.
Example:
<option name="ostarget" value="Linux"/> <option name="cputarget" value="x86_64"/> <option name="hide-protected" value="true"/> <option name="warn-no-node" value="false"/>
The packages node
The tag under the tag contains a tag for each package described by the project file. As many packages as needed can be described by the project file. All other tags under the packages tag are ignored.
Example:
<packages> <package name="rtl" output="rtl" content="rtl.xct"> </packages>
The package node
Each tag under the tag describes one package. It contains at most 2 tags: the tag and the descriptions tag.
The tag has 3 attributes:
- name
-
This attribute specifies the name of the package. This attribute is mandatory.
- output
-
This attribute contains the default output name for the package. This attribute is optional.
- content
-
The attribute specifies the name of the content file to write for this package. This attribute is optional. No file will be written if it is omitted.
Example:
<package name="rtl" output="rtl" content="rtl.xct">
The units node
The units tag below the tag describes the input files for the package. It consists of a series of unit tags, one tag for each unit.
Example:
<units> <unit file="../rtl/linux/system.pp" options="-dfpdocsystem"/> <unit file="../rtl/objpas/objpas.pp" options="-dHASINTF"/> </units>
The unit node
The unit tag describes one input file for the package. This tag corresponds to the --input command-line option.
The tag has 2 attributes:
- file
-
The tag contains the file name. This attribute is mandatory.
- options
-
The attribute is optional, and specifies any options that must be passed on to the parser when parsing the input file.
Example:
<unit file="cthreads.pp" options="-S2"/>
The descriptions node
The tag below the tag contains one tag for each description file belonging to the package. No other tags should appear below the tag.
Example:
<descriptions> <description file="rtl.xml"/> <description file="system.xml"/> </descriptions>
The description node
The tag describes one description file used in the documentation for the package. It has one attribute , containing the filename of the documentation file. This attribute is mandatory. All other attributes are ignored.
Example:
<description file="cthreads.xml"/>
The imports node
The tag below the tag contains one tag for each content file to import file belonging to the package. No other tags should appear below the tag.
Example:
<imports> <import file="rtl.xct"/> <import file="fcl.xct"/> </imports>
The import node
The tag describes one import file used in the documentation for the package. It has one attribute , containing the filename of the documentation file. This attribute is mandatory. All other attributes are ignored.
Example:
<import file="rtl.xct"/>
An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.
