4
==> For instructions on how to get swig bindings working, read the
5
INSTALL file in this directory.
8
SVN HEADER -> SWIG MODULE
9
-------------------------
11
Subversion has a bunch of include files, some which are interesting for
12
wrapping with language bindings, and others which are simple type
13
declarations and constants. Below is the table which maps each header
16
INCLUDE SWIG MODULE NAME
17
svn_auth.h _core (some symbols)
21
svn_config.h _core (some symbols)
26
svn_error_codes.h _core
29
svn_io.h _core (only stream functions)
31
svn_opt.h _core (some symbols)
33
svn_pools.h _core (only pool manipulation)
34
svn_props.h _core (some symbols)
43
svn_time.h _core (some symbols)
46
svn_version.h _core (some symbols)
52
(1) It is assumed that the binding languages will provide this
53
functionality separately.
54
### HELP: Java does not provide base-64 natively. Should we wrap
55
### SVN's with SWIG, or include a stand-alone ASF implementation
56
### (such as from Jakarta Commons Codec)?
58
(2) No significant/interesting functionality to export.
60
(3) A SWIG interface file exists, but only to export types used by other
61
modules. No binding module is actually constructed from this
65
NOTE: the bindings code is being developed using SWIG 1.3.19 or
66
later. Earlier versions of SWIG will simply *not* work.
74
We will produce a number of modules/classes, expecting the binding
75
languages to organize these into a package, and present the Subversion
76
libraries' API in a manner familiar to programmers of a given
77
language. For instance, the Python bindings are handled as follows:
93
"Thunk" is Windows programming term describing a "go between." Our
94
SWIG bindings generally implement editors in C which delegate to the
95
language-specific extension API (e.g. its C API for Python, JNI for
96
Java, etc.). This transitional object implements a Subversion editor
97
interface, allowing it to be passed between its native library code
98
and the runtime of the language which the bindings were written for.
103
SWIG INTERFACE FILE CODING NOTES
104
--------------------------------
106
Always place %{ #include "foo.h" ... %} sections above any code which
107
will actually cause SWIG to generate wrappers. This is because those
108
wrappers may need declarations from the headers to be valid C.
109
Practically, this means that the %{ ... %} block should be above any
110
"%include *.h" statements (%includes of *.i files are fine, since they
111
should be self-sufficient).