mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-29 21:21:12 +00:00
Update the README with information about API documentation
This commit is contained in:
parent
71cabcb787
commit
7788ad0da2
1 changed files with 61 additions and 6 deletions
67
README.md
67
README.md
|
@ -17,28 +17,83 @@ for *stable* automatic formatting.
|
||||||
|
|
||||||
80 columns line width is thus not yet enforced, but strongly suggested.
|
80 columns line width is thus not yet enforced, but strongly suggested.
|
||||||
|
|
||||||
# Build a web portal from the sources
|
# Build the documentation
|
||||||
|
|
||||||
## Install dependencies
|
## Install dependencies
|
||||||
|
|
||||||
* Follow [hotdoc's installation guide](https://people.collabora.com/~meh/hotdoc_hotdoc/html/installing.html),
|
* Follow [hotdoc's installation guide](https://hotdoc.github.io/installing.html),
|
||||||
preferably in a virtualenv.
|
preferably in a virtualenv.
|
||||||
|
|
||||||
* We *experimentally* use the hotdoc C extension to include functions by
|
* We *experimentally* use the hotdoc C extension to include functions by
|
||||||
name, follow the steps outlined [here](https://github.com/hotdoc/hotdoc_c_extension)
|
name, follow the steps outlined [here](https://github.com/hotdoc/hotdoc_c_extension)
|
||||||
|
|
||||||
* Build the portal:
|
## Build the portal without the API documentation
|
||||||
|
|
||||||
```
|
```
|
||||||
make
|
meson build
|
||||||
|
ninja -C build/ GStreamer-doc
|
||||||
```
|
```
|
||||||
|
|
||||||
* And browse it:
|
And browse it:
|
||||||
|
|
||||||
```
|
```
|
||||||
gio open built_doc/html/index.html
|
gio open build/GStreamer-doc/html/index.html
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## API documentation
|
||||||
|
|
||||||
|
Building the API documentation in the portal implies using
|
||||||
|
[gst-build](https://gitlab.freedesktop.org/gstreamer/gst-build/) which allows us
|
||||||
|
to aggregate the documentation from all GStreamer modules using the hotdoc subproject
|
||||||
|
feature.
|
||||||
|
|
||||||
|
From `gst-build`:
|
||||||
|
|
||||||
|
```
|
||||||
|
meson build/
|
||||||
|
ninja -C build subprojects/gst-docs/GStreamer-doc
|
||||||
|
```
|
||||||
|
|
||||||
|
And browse the doc:
|
||||||
|
|
||||||
|
```
|
||||||
|
gio open build/subprojects/gst-docs/GStreamer-doc/html/index.html
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also generate a release tarball of the portal with:
|
||||||
|
|
||||||
|
```
|
||||||
|
ninja -C build gst-docs@release
|
||||||
|
```
|
||||||
|
|
||||||
|
### Adding a newly written plugin to the documentation
|
||||||
|
|
||||||
|
To add a plugin to the documentation you need to add the given
|
||||||
|
meson target to the `plugins` list present in each GStreamer module for
|
||||||
|
example:
|
||||||
|
|
||||||
|
``` meson
|
||||||
|
gst_elements = library('gstcoreelements',
|
||||||
|
gst_elements_sources,
|
||||||
|
c_args : gst_c_args,
|
||||||
|
include_directories : [configinc],
|
||||||
|
dependencies : [gobject_dep, glib_dep, gst_dep, gst_base_dep],
|
||||||
|
install : true,
|
||||||
|
install_dir : plugins_install_dir,
|
||||||
|
)
|
||||||
|
plugins += [gst_elements]
|
||||||
|
```
|
||||||
|
|
||||||
|
Then when rebuilding, the `gst_plugins_cache.json` file will be updated
|
||||||
|
in the given module and this change should be commited to the git repository.
|
||||||
|
|
||||||
|
The plugins documentation is generated exclusively based on that file to
|
||||||
|
avoid needing to have built all plugins to get the documentation generated.
|
||||||
|
|
||||||
|
NOTE: When moving plugins from one module to another, the `gst_plugins_cache.json`
|
||||||
|
from the module where the plugin has been removed should be manually edited
|
||||||
|
to reflect the removal.
|
||||||
|
|
||||||
## Licensing
|
## Licensing
|
||||||
|
|
||||||
The content of this module comes from a number of different sources and is
|
The content of this module comes from a number of different sources and is
|
||||||
|
|
Loading…
Reference in a new issue