summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2011-04-04 11:15:12 -0400
committerDavid Zeuthen <davidz@redhat.com>2011-04-04 11:15:12 -0400
commit7b289ed57d0248c6014b47a1b9de851d50b90efe (patch)
treea22d285cddff9bafee9998a60773f8ead16e4737
parentfe9de68bceed5a92fec06d8e0da40490b4bb2593 (diff)
Generate one XML file per refentry
Signed-off-by: David Zeuthen <davidz@redhat.com>
-rw-r--r--doc/gen-docs.xml6
-rw-r--r--src/Makefile.am4
-rw-r--r--src/codegen_docbook.py17
-rw-r--r--src/codegen_main.py4
4 files changed, 19 insertions, 12 deletions
diff --git a/doc/gen-docs.xml b/doc/gen-docs.xml
index ecb06f2..50fc831 100644
--- a/doc/gen-docs.xml
+++ b/doc/gen-docs.xml
@@ -33,7 +33,11 @@
<xi:include href="xml/gdbusobjectmanagerclient.xml"/>
</chapter>
- <xi:include href="../src/test-generated-docs.xml"/>
+ <chapter>
+ <title>D-Bus Interfaces</title>
+ <xi:include href="../src/test-generated-doc-org.project.Bar.xml"/>
+ <xi:include href="../src/test-generated-doc-org.project.InlineDocs.xml"/>
+ </chapter>
</part>
<part>
diff --git a/src/Makefile.am b/src/Makefile.am
index 3bc9760..b5c8dae 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -101,7 +101,7 @@ test-generated.h test-generated.c : Makefile.am org.project.xml $(codegen_PYTHON
--c-namespace Foo \
--interface-prefix org.project. \
--generate-c-code test-generated \
- --generate-docbook test-generated-docs.xml \
+ --generate-docbook test-generated-doc \
--annotate "org.project.Bar" Key1 Value1 \
--annotate "org.project.Bar" org.gtk.GDBus.Internal Value2 \
--annotate "org.project.Bar.HelloWorld()" Key3 Value3 \
@@ -148,7 +148,7 @@ gdbus_example_proxymanager_LDADD = $(GLIB2_LIBS) libgen.la
EXTRA_DIST += gdbus-codegen.pc.in
-CLEANFILES = test-generated.[ch]
+CLEANFILES = test-generated.[ch] test-generated-doc-*.xml
clean-local:
rm -f *~
diff --git a/src/codegen_docbook.py b/src/codegen_docbook.py
index a05f0f6..8b25b6d 100644
--- a/src/codegen_docbook.py
+++ b/src/codegen_docbook.py
@@ -11,9 +11,9 @@ import parser
# ----------------------------------------------------------------------------------------------------
class DocbookCodeGenerator:
- def __init__(self, ifaces, docbook_file):
+ def __init__(self, ifaces, docbook):
self.ifaces = ifaces
- self.out = docbook_file
+ self.docbook = docbook
def print_method_prototype(self, i, m, in_synopsis):
max_method_len = 0
@@ -193,13 +193,17 @@ class DocbookCodeGenerator:
self.out.write('</refsect2>\n')
def generate(self):
- self.out.write('<chapter>\n')
- self.out.write('<title>D-Bus Interfaces</title>\n')
for i in self.ifaces:
+ self.out = file('%s-%s.xml'%(self.docbook, i.name), 'w')
+ self.out.write(''%())
+ self.out.write('<?xml version="1.0" encoding="utf-8"?>\n'%())
+ self.out.write('<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"\n'%())
+ self.out.write(' "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [\n'%())
+ self.out.write(']>\n'%())
self.out.write('<refentry id="gdbus-%s">\n'%(i.name))
self.out.write(' <refmeta>'%())
self.out.write(' <refentrytitle role="top_of_page" id="gdbus-%s.top_of_page">%s</refentrytitle>\n'%(i.name, i.name))
- self.out.write(' <indexterm zone="gdbus-interface-%s"><primary sortas="%s">%s</primary></indexterm>\n'%(i.name, i.name_without_prefix, i.name))
+ self.out.write(' <indexterm zone="gdbus-%s.top_of_page"><primary sortas="%s">%s</primary></indexterm>\n'%(i.name, i.name_without_prefix, i.name))
self.out.write(' </refmeta>'%())
self.out.write(' <refnamediv>'%())
@@ -215,7 +219,7 @@ class DocbookCodeGenerator:
self.print_synopsis_properties(i)
self.out.write('<refsect1 role="desc" id="gdbus-interface-%s">\n'%(i.name))
- self.out.write(' <title role="desc.title">D-Bus Interface %s</title>\n'%(i.name))
+ self.out.write(' <title role="desc.title">Description</title>\n'%())
self.out.write(' <para>%s</para>\n'%(i.doc_string))
self.out.write('</refsect1>\n'%())
@@ -242,5 +246,4 @@ class DocbookCodeGenerator:
self.out.write('</refentry>\n')
self.out.write('\n')
- self.out.write('</chapter>\n')
diff --git a/src/codegen_main.py b/src/codegen_main.py
index 1ebd428..7e70e80 100644
--- a/src/codegen_main.py
+++ b/src/codegen_main.py
@@ -135,7 +135,7 @@ def codegen_main():
arg_parser.add_argument('--generate-c-code', nargs='?', metavar='OUTFILE',
help='Generate C code in OUTFILE.[ch]')
arg_parser.add_argument('--generate-docbook', nargs='?', metavar='OUTFILE',
- help='Generate Docbook docs in OUTFILE')
+ help='Generate Docbook in OUTFILE-org.Project.IFace.xml')
arg_parser.add_argument('--annotate', nargs=3, action='append', metavar=('WHAT', 'KEY', 'VALUE'),
help='Add annotation (may be used several times)')
args = arg_parser.parse_args();
@@ -162,7 +162,7 @@ def codegen_main():
docbook = args.generate_docbook
if docbook:
- gen = codegen_docbook.DocbookCodeGenerator(all_ifaces, file(docbook, 'w'));
+ gen = codegen_docbook.DocbookCodeGenerator(all_ifaces, docbook);
ret = gen.generate()
sys.exit(0)