Commit Graph

134 Commits

Author SHA1 Message Date
Bill Spitzak
6be2d9aaef doc: Intro text for doxygen output in it's own file
(This patch has been modified to apply atop current master)

This makes it considerably easier to edit the text and make it different
for each library.

To address previous concerns with this patch, I wrote some more complete
introductory text. This is based on my understanding of these libraries, which
may not be correct, and is pretty rudimentary for libwayland-server!

However this intro text demonstrates how to create links to the
doxygen-generated text. It looks like you cannot link to methods easily as the
link name contains a hash number, but links to objects and classes work.
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
Tested-by: Jon A. Cruz <jonc@osg.samsung.com>
2015-01-29 17:13:01 -08:00
Rui Matos
cd0cf5a106 doc/publican/Makefile.am: Add a missing order-only prerequisite
Otherwise a parallel make invocation could fail due to the directory
not existing.

Signed-off-by: Rui Matos <tiagomatos@gmail.com>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
2015-01-28 18:44:46 -08:00
Jon Cruz
7575e2ea19 doc: update diagrams for compatibility.
Change attribute separators for compatiblity with graphviz older than 2.30.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
2015-01-28 17:43:19 -08:00
Jon Cruz
8cf9a367c9 doc: Create hot-linked areas in documents.
Added xslt processing to give DocBook output diagram image maps/hot-linked
areas consistent with those automatically generated by Doxygen.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
2015-01-28 17:43:18 -08:00
Jon Cruz
b5fca036cc doc: Switch from static image files to generated diagrams.
Switches diagrams from using static PNG images to instead generate them via
simple graphviz DOT markup files.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
2015-01-28 17:43:16 -08:00
Bill Spitzak
284da98a3c doc: Put a dash between type/enum value and description
This was suggested by Derek Foreman, I think it looks better

Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-01-26 17:55:00 -08:00
Bill Spitzak
ed57d6d438 doc: Add macros and typedefs to the documentation
If somebody bothered to put a doxygen comment in for a macro or
typedef, make it appear in the pages. This produces documentation
for wl_container_of and wl_dispatcher_func_t from the _8h files.

Reviewed-by: "Jon A. Cruz" <jonc@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-01-26 17:54:59 -08:00
Bill Spitzak
5409187ed0 doc: there is no need to move the _8h files
The current xslt skips all the data that is in them, so it is ok
if they are included.

Reviewed-by: "Jon A. Cruz" <jonc@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-01-26 17:54:54 -08:00
Bill Spitzak
6750538455 doc: remove redundant subtitles
Put the argument lists next to the event/message title, which I
think makes it a lot easier to understand, and remove redundant
"values" title from enumerations.

Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-01-23 18:45:03 -08:00
Bill Spitzak
d90fd15ee4 doc: Add object types and links to arguments int protocol documentation
This makes it a lot easier to figure out what is going on!

Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-01-23 18:45:02 -08:00
Bill Spitzak
be8064d2d4 doc: compress the lists in the protocol docs some
Use simpara to remove the blank lines, and put the type/value and
the comment into the same line.

Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-01-23 18:45:01 -08:00
Bill Spitzak
2888e97d5d doc: make itemized lists from doxygen work
Not actually used currently but probably a good idea.

Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-19 16:33:34 +02:00
Bill Spitzak
0d0a62c79a doc: Document structures and unions in addition to classes
This provides targets for some of the doxygen links, and some of
them have useful memberof function lists.

Added some if/else statements to reduce validation errors.

Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-19 16:27:51 +02:00
Bill Spitzak
f980a60038 doc: Each class in doxygen output is a section
All the methods belonging to the class are listed with it, making
it much easier to find them.

I dumped all other functions into a section called "Functions" at
the end.

Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-19 16:21:36 +02:00
Bill Spitzak
4abe5edf46 doc: removed the word "interface" from the link names
Just to make it slightly shorter.

Also add a dash to the doxygen links to make them look a bit more alike.

Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-19 16:15:29 +02:00
Bill Spitzak
dfc64f9ffe doc: Reduce the validation errors of the docbook input
(this is different from previous version as it removes some
broken and irrelevant changes to the protocol appendix).

This removes all the validation errors except for missing link
targets. You can test this by removing the --skip-validation
from doc/publican/Makefile.am.

Main changes are to avoid nesting <para> commands. I also used
<simpara> in some places to reduce the amount of blank space.
And the reference id's are prefixed with the chapter name to
avoid collisions between libclient and libserver.

PS: it would be useful if somebody who actually knows something
about xslt would come up with a way to translate a block of text
makde of <para> commands unchanged, but add <para> around plain
text. Most of the difficulty is that doxygen's output is rather
inconsistent here.

Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-19 16:10:36 +02:00
Bill Spitzak
75ec915da8 fixup doc: Make it easier to add a new doxygen page
This supersedes the previous one and fixes a typo where a slash was missing.

Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-18 15:23:03 +02:00
Bill Spitzak
6e3ad249ad doc: Make it easier to add a new doxygen page
The repetitive parts of generating the server and client documentation are
merged, so it is easier to add another doxygen chapter: add a new line to
$publican_sources in publican/Makefile.am, and a list of C source files to
doxygen/Makefile.am.

Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2014-12-18 15:13:39 +02:00
Bill Spitzak
3f05c4ac4a doc: fix for parallel make
Move the *_8h.xml files to a per-chapter temporary file so two
chapters can be converted from doxygen at the same time. Tested
with make -j 9.

Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2014-12-18 15:07:22 +02:00
Bill Spitzak
c985a17988 doc: Split libwayland-client and -server into different pages
This was suggested before to make it clearer that things like wl_display
are different objects in each of them. I made these into two appendixes
because the protocol spec was already an appendix.

Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
[Bryce requested minor changes, not yet here.]

Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-16 17:07:25 +02:00
Bill Spitzak
0b788154da doc: fix doxygen->man command line
It was telling it to scan the doxyfile as well as the C source, and
listing some source files more than once.

Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-16 17:05:23 +02:00
Jon A. Cruz
163ce87cd7 doc: Minor makefile cleanup.
Split out directory creation to leverage order only prerequisites.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-16 16:52:12 +02:00
Jon A. Cruz
dec30252b0 doc: General makefile cleanup.
This is a general cleanup of the makefile in order to bring it more inline
with standard make practices. Cleanups included more use of automatic
variables, switching AM_V_GEN to AM_V_at to have one 'GEN' visible per file,
splitting copy operations to proper rules, and using order only dependencies
to properly create directories on-demand.

Changes also correct missing use of $(builddir) that has gone unnoticed as
it defaults to the current directory ('.').

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-16 16:48:32 +02:00
Bill Spitzak
9ca542db4e doc: Remove duplicated descriptions of wayland objects
This text is a duplicate of the text in the protocol documentation, but
the converter mangled it by removing the paragraph breaks and some other
errors. Instead replace it with a list of links to the protocol docs.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-12-05 16:58:28 +02:00
Bill Spitzak
0093164f85 doc: removed redundant dependency
The .tmp file dependency depends on the index.xml file so it does not need to
be repeated.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-12-05 16:56:39 +02:00
Jon A. Cruz
962de0d0cc doc: Invoke doxygen via the defined make variable.
Invoke doxygen via the autoconf-defined make variable instead of directly.
This brings it in line with standard makefile practices.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-12-05 16:16:05 +02:00
Jon A. Cruz
8cda738a68 doc: Removed redundant xslt output elements.
Removed <xsl:output> elements that were duplicated but with attributes in
a different order. Standard tools are required to ignore the order of
attributes in an element.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-12-01 15:21:25 +02:00
Bill Spitzak
dd534a1fde doc: removed some unnecessary nested listing from doxygen output
This makes the lists of parameters slightly smaller and removes some
bullets from see-also and since.
2014-11-25 16:25:22 +02:00
Bill Spitzak
f2974c1115 doc: Don't print dash if doxygen brief description missing 2014-11-25 16:21:39 +02:00
Bill Spitzak
ba8ea938d2 doc: preserve links produced by Doxygen
These links are pretty useful for navigation, though sometimes excessive
(you can turn them off by putting % before the word in the comment).

I had to turn off validation because it failed on missing and duplicate
target id's, which this produces.
2014-11-25 16:14:51 +02:00
Bill Spitzak
c532b571e3 doc: Preserve spaces
Slight variation on Pekka's patch. It seems harmless to put this anywhere.
2014-11-25 16:04:42 +02:00
Bill Spitzak
d8f045ec1f doc: make rebuilds doxygen output on code changes
Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
2014-11-25 15:45:03 +02:00
Benjamin Herr
4a661c5b0c doc: Translate doxygen <sp/> tags to spaces
Doxygen represents all spacing in code blocks with <sp/> tags, so these
need to be turned back into spaces.

Signed-off-by: Benjamin Herr <ben@0x539.de>
2014-11-03 15:53:01 +02:00
Benjamin Herr
6b511090c5 doc: Mostly use apply-templates over value-of
xsl:value-of would strip all the nested markup of the selected doxygen
elements, so that \ref, \sa and \code formatting didn't actually work.

Signed-off-by: Benjamin Herr <ben@0x539.de>
2014-11-03 15:51:12 +02:00
Peter Hutterer
f3e7eedf1c doc: replace publican with xmlto
Publican isn't packaged for some distros, xmlto is a lot more common. Most of
what publican provides for us is the stylesheet anyway, so we can just use
xmlto and the publican stylesheet to get roughly the same look.

PDF and XML generation has been dropped, this needs a bit more more effort
than a mere switchover to xmlto.

The top-level directory structure imposed by publican is kept for now
(specifically the Wayland/en-US/html tree). This makes it easier to transition over
for packagers. Note that the list of files inside has changed.

CSS files are taken from publican to keep a uniform look compared to previous
documentations. Stylesheets are licensed under CC0 1.0 Universal license, see
publican/LICENSE:

1.  Files in the datadir/Common_Content directory and its subdirectories are
    licensed under the CC0 1.0 Universal license.

    To the extent possible under law, the developers of Publican waive all
    copyright and related or neighboring rights to the files contained
    in the datadir/Common_Content directory and its subdirectories.

Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-09-22 10:30:41 +03:00
Bryce W. Harrington
7af5920031 doc: Quell warnings about missing man3 directory before its been built
The shell command for dist_man3_MANS gets invoked several times during
the make process but before the man pages have been generated, which
causes the following warnings when running `make`:

    find: `man/man3': No such file or directory
    find: `man/man3': No such file or directory
    find: `man/man3': No such file or directory
      GEN    xml/client/index.xml

Despite these error messages, the generated dist tarball contains the
man3 pages as intended, both before and after this patch.

    $ make dist
    $ tar xxf wayland-1.5.90.tar.xz
    $ find wayland-1.5.90/doc/doxygen/man/man3 -name "wl_*.3" | wc -l
    85

Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-09-05 11:53:13 +03:00
Peter Hutterer
fb97550ce6 doc/publican: stop excessive rebuilds
Traced down to the server/client target always rebuilding, causing a rebuild
of everything else. Rework this so the target name is a file we actually
produce and can check for a timestamp.

Note: this also changes the generated file from the doxygen directory into the
en-US publican path and renames it to (server|client)API.xml.tmp to avoid
copying it into the xml output directory.
2014-09-03 16:25:27 +03:00
Peter Hutterer
3ccfdcc396 doc: force publican to use fop
Because wkhtmltopdf requires a $DISPLAY, and a patched Qt.

https://bugzilla.redhat.com/show_bug.cgi?id=997682
2014-07-06 12:39:16 +03:00
Peter Hutterer
f34cab2946 doc: reduce chunk_section_depth to 0
One html page per chapter.
2014-07-06 12:39:16 +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
Pekka Paalanen
52a531b4df build: hide doxygen commands with AM_V_GEN
I suppose the purpose was to print just one GEN line for each doxygen
rule being executed, not print the doxygen command.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-03-10 13:11:02 -07:00
Pekka Paalanen
538ee6bed6 doc: do not rebuild man pages if they are up to date
The doxygen.man make target was not a real file that was generated,
therefore the man page rule was ran on every make invocation. Replace it
with a real file that is produced by the man page rule.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-03-10 13:10:28 -07:00
Neil Roberts
c2bba88ccd Add documentation for wl_shm_buffer_begin/end_access
It's not obvious that these functions are needed so it would be good
to have some documentation for them.
2013-11-15 14:46:48 -08: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
Aaron Faanes
2e3af5e5d7 doc: Include wayland-util.* for doxygen output
This commit creates a shared file list that is included by both the
client and the server for the XML Makefile targets, as classes within
util are used by both the client and the server.
2013-09-16 22:00:00 -07:00
Jason Ekstrand
6b8eef962f doc: Add a section on interface and protocol object versioning
There have been a lot of questions asked lately about versioning of
interfaces and protocol objects.  This addition to the documentation should
clear up some of those questions.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2013-08-19 16:23:08 -07:00
Jason Ekstrand
52de023482 doc: Update the ID alocation section
The method described of alocation IDs has been wrong at least since version
1.0.  This commit updates it to correspond to the way IDs are chosen in
versions >= 1.0.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2013-08-19 16:23:02 -07:00
Peter Hutterer
2cc551b1ec publican: only split chapters and top-level sections onto separate pages
When generating HTML, don't split once we're into subjections. This
generates a single page for each protocol interface instead of the previous
separate pages for requests, events and enums.
No effect on the rest of the HTML configuration.
2013-08-15 14:42:44 -07:00
Bryce W. Harrington
eda474c779 publican: Fix grammar several places in Protocol docs
Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
2013-08-08 21:39:25 -07:00