gdbus-codegen: Apply --output-directory to generated docs as well

In addition to code, gdbus-codegen can also generate docbook
documentation for DBus interfaces. There's no good reason why
the newly added --output-directory option shouldn't apply to
those generated files as well.

https://bugzilla.gnome.org/show_bug.cgi?id=783201
This commit is contained in:
Florian Müllner 2017-05-29 00:38:19 +02:00
parent d3b4f7c9f6
commit 99d34f65d3
2 changed files with 7 additions and 4 deletions

View File

@ -21,6 +21,7 @@
import sys import sys
import re import re
from os import path
from . import config from . import config
from . import utils from . import utils
@ -30,9 +31,10 @@ from . import parser
# ---------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------
class DocbookCodeGenerator: class DocbookCodeGenerator:
def __init__(self, ifaces, docbook): def __init__(self, ifaces, docbook, outdir):
self.ifaces = ifaces self.ifaces = ifaces
self.docbook = docbook self.docbook = docbook
self.outdir = outdir
self.generate_expand_dicts() self.generate_expand_dicts()
def print_method_prototype(self, i, m, in_synopsis): def print_method_prototype(self, i, m, in_synopsis):
@ -270,7 +272,7 @@ class DocbookCodeGenerator:
def generate(self): def generate(self):
for i in self.ifaces: for i in self.ifaces:
self.out = open('%s-%s.xml'%(self.docbook, i.name), 'w') self.out = open(path.join(self.outdir, '%s-%s.xml'%(self.docbook, i.name)), 'w')
self.out.write(''%()) self.out.write(''%())
self.out.write('<?xml version="1.0" encoding="utf-8"?>\n'%()) 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('<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"\n'%())

View File

@ -181,14 +181,15 @@ def codegen_main():
for i in all_ifaces: for i in all_ifaces:
i.post_process(opts.interface_prefix, opts.c_namespace) i.post_process(opts.interface_prefix, opts.c_namespace)
outdir = opts.output_directory
docbook = opts.generate_docbook docbook = opts.generate_docbook
docbook_gen = codegen_docbook.DocbookCodeGenerator(all_ifaces, docbook); docbook_gen = codegen_docbook.DocbookCodeGenerator(all_ifaces, docbook, outdir);
if docbook: if docbook:
ret = docbook_gen.generate() ret = docbook_gen.generate()
c_code = opts.generate_c_code c_code = opts.generate_c_code
if c_code: if c_code:
outdir = opts.output_directory
header_name = c_code + '.h' header_name = c_code + '.h'
h = open(path.join(outdir, header_name), 'w') h = open(path.join(outdir, header_name), 'w')
c = open(path.join(outdir, c_code + '.c'), 'w') c = open(path.join(outdir, c_code + '.c'), 'w')