summaryrefslogtreecommitdiff
path: root/generate/README
blob: 1e86148ca91b4511958543c9cb63fe48228b1c1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Source code in this tree was originally generated from a magical gobject
generation tool called gengobject.py. It takes D-Bus XML introspection data and
outputs source, header and other files like signal marshallers. To read the XML
from generate/xml-modified/ directory, and output new source in the
generate/src/ directory, where changes can be reveiwed and applied to the src/
directory by hand, run generate/do_src.sh.

The XML is generated from the Python classes which are the current canonical
definition of the Telepathy interfaces, according to the definitions in
xml.def, and the list of methods which are to be implemented as asynchronous
in async_implementations. To generate the XML run generate/do_xml.sh. This is
a two-stage process: firstly, the "pristine" XML in generate/xml-pristine/
is generated from the Python classes and xml.def, and secondly, the "modified"
XML in generate/xml-modified/ is generated by patching xml-pristine/ according
to async_implementations.

Applying the changes to the C source can be as easy as:
 darcs diff -u generate/src | patch -d src
Patch does a much better job of applying generated changes to the modified code
than darcs did when pulling patches from seperate trees (xml -> generate ->
live).