Commit graph

14 commits

Author SHA1 Message Date
Armin Krezović
c3ff179a95 Do not create man page links with doxygen
There is a lot of files created with .so links to non-installed
files, making most of installed pages useless. The files
referenced in .so links are not suitable for installation nor
do they contain any useful information for them to be worth
fixing.

Signed-off-by: Armin Krezović <krezovic.armin@gmail.com>
Acked-by: Daniel Stone <daniels@collabora.com>
2017-12-04 19:53:26 +00:00
Yong Bakos
20742b7449 doc: Remove display of WL_PRINTF attribute
Doxygen truncates a WL_PRINTF function attribute, and there does not
seem to be any workaround[1]. When using the attribute like this:

typedef void (*wl_log_func_t)(const char *, va_list) WL_PRINTF(1, 0);

Doxygen generates something that looks like this:

typedef void (*wl_log_func_t)(const char *, va_list) WL_PRINTF(1,

Configure doxygen to consider WL_PRINTF(x,y) as predefined, so it does
not display the attribute at all in the generated documentation.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=774741

Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-11-23 10:11:49 +00:00
Peter Hutterer
2b5310a367 doc: generate doxygen html output from the scanner
This switches the scanner to generate doxygen-compatible tags for the
generated protocol headers, and hooks up the doxygen build to generate server
and client-side API documentation. That documentation is now in
Client/ and Server/, respectively.

GENERATE_HTML is on by default and must be disabled for the xml/man targets to
avoid messing up the new documentation. We disable all three three targets in
the doxyfile (xml and man default to NO anyway) to make it obvious that they
need to be set in the per-target instructions.

Each protocol is a separate doxygen @page, with each interface a @subpage.
Wayland only has one protocol, wayland-protocols will have these nested.
Each protocol page has a list of interfaces and the copyright and description
where available.
All interfaces are grouped by doxygen @defgroup and @ingroups and appear in
"Modules" in the generated output. Each interface subpage has the description
and a link to the actual API doc.
Function, struct and #defines are documented in doxygen style and associated
with the matching interface.

Note that pages and groups have fixed HTML file names and are directly
linkable/bookmark-able.

The @mainpage is a separate file that's included at build time. It doesn't
contain much other than links to where the interesting bits are. It's a static
file though that supports markdown, so we can extend it easily in the future.

For doxygen we need the new options EXTRACT_ALL and OPTIMIZE_OUTPUT_FOR_C so
it scans C code properly. EXTRACT_STATIC is needed since most of the protocol
hooks are static.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-07 11:55:43 -08:00
Peter Hutterer
82a6fec962 doc: drop the default doxygen tags
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-18 15:43:58 +03:00
Peter Hutterer
356a48fcfb doc: move project-specific doxygen settings to the end of the doxygen file
Rather than having the settings hidden in the file somewhere move them to the
end so it's clear which settings we intentionally override.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-18 15:43:46 +03:00
Boyan Ding
3e007aef2f doc: Remove obsolete doxygen tags 2014-05-12 10:15:07 -07:00
Jonas Ådahl
6b66034268 doc: Remove deprecated doxygen tag
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2014-05-09 14:29:36 -07:00
Aaron Faanes
217909c18d doc: Create \comment alias for C-style comments
Since /* */ do not nest, documentation is forced to either use C++ style
// comments or some other foreign notation. This commit provides an alias
that allows C-style comments to be introduced in code blocks that support
aliases.

It should be noted that this macro will not work within \code blocks, as
Doxygen commands are ignored there. Instead, Doxygen's fenced code
blocks (created via ~~~) must be used for proper output. To demonstrate:

~~~
struct example_node {
        int id;
        \comment{Other members ...}
};
~~~

will roughly yield the following HTML (excluding syntax highlighting):

<pre>
struct example_node {
        int id;
        /* Other members ... */
};
</pre>
2013-09-21 11:29:08 -07:00
Peter Hutterer
b1d7131c36 doc: generate server documentation from XML too
Same as WaylandClientAPI.xml we now also generate WaylandServerAPI.xml for
publication. Most of this hunk is just adding a client/ or server/ into the
xml path to keep the two separate.

The change in wayland.doxygen now causes a standard doxygen call to not
generate anything - what is generated is specified through the options
passed by make.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-04-04 16:57:18 -04:00
Peter Hutterer
8ccab1ba62 doc: generate man pages from doxygen
Create client-side and server-side man pages from doxygen. The doxygen
config options are virtually the same as for the XML output, but we do pass
in the specific options via stdin.

WL_EXPORT is predefined to the empty string, it makes the man page look
confusing and provides no value here anyway. This applies for both xml and
man output.

JAVADOC_AUTOBRIEF is disabled for man pages, the formatting in the resulting
man page is IMO hard to read.

Most of the server man pages are virtually empty, there's just not enough
documentation in the source files.

Interesting issue: the usage of @code in the protocol to reference the
parameter breaks the expansion of WL_EXPORT, thus leaving us with WL_EXPORT
in all the man pages.
Presumably this is an issue with doxygen interpreting this as a @code
command, but I already wasted enough time narrowing this down.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-04-03 15:44:50 -04:00
Tiago Vignatti
a95aba7fca doc: doxygen: Interpret the first line comment as the brief
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-11-12 16:07:16 -02:00
Kristian Høgsberg
c4857e9232 doc: Remove obsolete doxygen tags
https://bugs.freedesktop.org/show_bug.cgi?id=56377
2012-10-29 13:12:53 -04:00
Ander Conselvan de Oliveira
2320757e8e doc: Add some doxygen documentation to wayland-client entry points
Add some brief documentation for the public libwayland-client entry
points. This is by no means complete, some functions are still
undocumented and some might need extra information.

Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-10-15 13:06:15 -04:00
Tiago Vignatti
e2db4cf26f doc: Add auto-generated Wayland Library chapter
For now only Wayland Client API is described on that chapter, which is
extracted via doxygen on ./src/wayland-client.h. We apply a stylesheet
(doxygen-to-publican) on doxygen output so it becomes docbook valid.

Now all we need to do is populate that header while developing in order to
grow a decent documentation. So please use it!

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-10-15 13:02:04 -04:00