On Wed, Oct 1, 2008 at 8:38 PM, C. Michael Pilato <cmpilato_at_red-bean.com> wrote:
> I don't have the Gnome or KWallet keyring stuff configured in my Subversion
> build, but that appears to not be preventing my Python SWIG bindings from
> trying to link against such. Shouldn't our headers files (which are what
> SWIG is parsing, IIUC) be conditionally defining those interfaces based on
> the presence of #defines like these (from svn_private_config.h):
>
> /* Is GNOME Keyring support enabled? */
> /* #undef SVN_HAVE_GNOME_KEYRING */
>
> /* Is Mac OS KeyChain support enabled? */
> /* #undef SVN_HAVE_KEYCHAIN_SERVICES */
>
> /* Is KWallet support enabled? */
> /* #undef SVN_HAVE_KWALLET */
Hi Mike,
This is a tricky issue. Since we ship the C files generated by SWIG in
the Subversion tarball, our generated files must be
platform-independent. Unfortunately, if we hide functions from SWIG,
our generated C files won't be platform-independent anymore.
I can see three ways to resolve this issue:
1. Teach SWIG to add the necessary "#if" statements to the generated
C file, so that our generated C files continue to be platform
independent. This is the route that I took with the ctypes python
bindings.
2. Give up on shipping platform-independent C files, and instead
just add the necessary #if statements to the header files. In this
case, we will also need to update our build scripts so that we don't
include the generated C files in our tarball anymore.
3. Bypass the whole issue by just teaching SWIG to ignore all of our
platform-specific functions.
If you do add #if statements to the header files, please make sure
that all platform-specific functions are defined when CTYPESGEN macro
is present. This is necessary so that ctypesgen can generate
definitions for the platform-specific functions in a
platform-independent manner. For example:
#if defined(SVN_HAVE_GNOME_KEYRING) || defined(DOXYGEN) || defined(CTYPESGEN)
...
See also http://svn.haxx.se/dev/archive-2008-09/1120.shtml
Cheers,
David
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-10-02 06:47:48 CEST