Index: build.conf =================================================================== --- build.conf (revision 16293) +++ build.conf (working copy) @@ -358,7 +358,7 @@ install = swig-py-lib # need special build rule to include -DSWIGPYTHON compile-cmd = $(COMPILE_SWIG_PY) -msvc-static = yes +msvc-static = no # SWIG utility library for Perl modules [libsvn_swig_perl] Index: subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c =================================================================== --- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (revision 16293) +++ subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (working copy) @@ -36,6 +36,7 @@ #include "svn_private_config.h" /* for SVN_APR_INT64_T_PYCFMT */ #include "swig_python_external_runtime.swg" +#define COMPILE_SWIGUTIL #include "swigutil_py.h" Index: subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h =================================================================== --- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h (revision 16293) +++ subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h (working copy) @@ -40,88 +40,117 @@ +#ifdef WIN32 +#ifdef COMPILE_SWIGUTIL +#define SWIGUTILEXPORT __declspec(dllexport) +#else +#define SWIGUTILEXPORT __declspec(dllimport) +#endif +#endif + /* Functions to manage python's global interpreter lock */ +SWIGUTILEXPORT void svn_swig_py_release_py_lock(void); +SWIGUTILEXPORT void svn_swig_py_acquire_py_lock(void); /*** Automatic Pool Management Functions ***/ +SWIGUTILEXPORT extern int _global_svn_swig_py_is_local_pool; /* Set the application pool */ +SWIGUTILEXPORT void svn_swig_py_set_application_pool(PyObject *py_pool, apr_pool_t *pool); /* Clear the application pool */ +SWIGUTILEXPORT void svn_swig_py_clear_application_pool(void); /* Get the application pool */ +SWIGUTILEXPORT void svn_swig_get_application_pool(PyObject **py_pool, apr_pool_t **pool); /* Register cleanup function */ +SWIGUTILEXPORT PyObject * svn_swig_py_register_cleanup(PyObject *py_pool, apr_pool_t *pool); /*** SWIG Wrappers ***/ /* Wrapper for SWIG_NewPointerObj */ +SWIGUTILEXPORT PyObject *svn_swig_NewPointerObj(void *obj, swig_type_info *type, PyObject *pool); /* Wrapper for SWIG_ConvertPtr */ +SWIGUTILEXPORT int svn_swig_ConvertPtr(PyObject *input, void **obj, swig_type_info *type); /* Wrapper for SWIG_MustGetPtr */ +SWIGUTILEXPORT void *svn_swig_MustGetPtr(void *input, swig_type_info *type, int argnum, PyObject **py_pool); /*** Functions to expose a custom SubversionException ***/ /* register a new subversion exception class */ +SWIGUTILEXPORT PyObject *svn_swig_py_register_exception(void); /* get the object which represents the subversion exception class */ +SWIGUTILEXPORT PyObject *svn_swig_py_exception_type(void); /* raise a subversion exception, created from a normal subversion error */ +SWIGUTILEXPORT void svn_swig_py_svn_exception(svn_error_t *err); /* helper function to convert an apr_hash_t* (char* -> svnstring_t*) to a Python dict */ +SWIGUTILEXPORT PyObject *svn_swig_py_prophash_to_dict(apr_hash_t *hash); /* helper function to convert an apr_hash_t* (svn_revnum_t* -> const char *) to a Python dict */ +SWIGUTILEXPORT PyObject *svn_swig_py_locationhash_to_dict(apr_hash_t *hash); /* convert a hash of 'const char *' -> TYPE into a Python dict */ +SWIGUTILEXPORT PyObject *svn_swig_py_convert_hash(apr_hash_t *hash, swig_type_info *type, PyObject *py_pool); /* helper function to convert a 'char **' into a Python list of string objects */ +SWIGUTILEXPORT PyObject *svn_swig_py_c_strings_to_list(char **strings); /* helper function to convert an array of 'const char *' to a Python list of string objects */ +SWIGUTILEXPORT PyObject *svn_swig_py_array_to_list(const apr_array_header_t *strings); /* helper function to convert an array of 'svn_revnum_t' to a Python list of int objects */ /* Formerly used by pre-1.0 APIs. Now unused +SWIGUTILEXPORT PyObject *svn_swig_py_revarray_to_list(const apr_array_header_t *revs); */ /* helper function to convert a Python dictionary mapping strings to strings into an apr_hash_t mapping const char *'s to const char *'s, allocated in POOL. */ +SWIGUTILEXPORT apr_hash_t *svn_swig_py_stringhash_from_dict(PyObject *dict, apr_pool_t *pool); /* helper function to convert a Python dictionary mapping strings to strings into an apr_hash_t mapping const char *'s to svn_string_t's, allocated in POOL. */ +SWIGUTILEXPORT apr_hash_t *svn_swig_py_prophash_from_dict(PyObject *dict, apr_pool_t *pool); @@ -130,27 +159,33 @@ objects must remain alive -- the values are not copied. This is appropriate for incoming arguments which are defined to last the duration of the function's execution. */ +SWIGUTILEXPORT const apr_array_header_t *svn_swig_py_strings_to_array(PyObject *source, apr_pool_t *pool); /* like svn_swig_py_strings_to_array(), but for array's of 'svn_revnum_t's. */ +SWIGUTILEXPORT const apr_array_header_t *svn_swig_py_revnums_to_array(PyObject *source, apr_pool_t *pool); /* make an editor that "thunks" from C callbacks up to Python */ +SWIGUTILEXPORT void svn_swig_py_make_editor(const svn_delta_editor_t **editor, void **edit_baton, PyObject *py_editor, apr_pool_t *pool); +SWIGUTILEXPORT apr_file_t *svn_swig_py_make_file(PyObject *py_file, apr_pool_t *pool); +SWIGUTILEXPORT svn_stream_t *svn_swig_py_make_stream(PyObject *py_io, apr_pool_t *pool); /* a notify function that executes a Python function that is passed in via the baton argument */ +SWIGUTILEXPORT void svn_swig_py_notify_func(void *baton, const char *path, svn_wc_notify_action_t action, @@ -162,20 +197,24 @@ /* a status function that executes a Python function that is passed in via the baton argument */ +SWIGUTILEXPORT void svn_swig_py_status_func(void *baton, const char *path, svn_wc_status_t *status); /* a cancel function that executes a Python function passed in via the cancel_baton argument. */ +SWIGUTILEXPORT svn_error_t *svn_swig_py_cancel_func(void *cancel_baton); /* thunked fs get_locks function */ +SWIGUTILEXPORT svn_error_t *svn_swig_py_fs_get_locks_func (void *baton, svn_lock_t *lock, apr_pool_t *pool); /* thunked commit log fetcher */ +SWIGUTILEXPORT svn_error_t *svn_swig_py_get_commit_log_func(const char **log_msg, const char **tmp_file, apr_array_header_t *commit_items, @@ -183,6 +222,7 @@ apr_pool_t *pool); /* thunked repos authz callback function */ +SWIGUTILEXPORT svn_error_t *svn_swig_py_repos_authz_func(svn_boolean_t *allowed, svn_fs_root_t *root, const char *path, @@ -190,12 +230,14 @@ apr_pool_t *pool); /* thunked history callback function */ +SWIGUTILEXPORT svn_error_t *svn_swig_py_repos_history_func(void *baton, const char *path, svn_revnum_t revision, apr_pool_t *pool); /* thunked log receiver function */ +SWIGUTILEXPORT svn_error_t *svn_swig_py_log_receiver(void *py_receiver, apr_hash_t *changed_paths, svn_revnum_t rev, @@ -205,6 +247,7 @@ apr_pool_t *pool); /* thunked blame receiver function */ +SWIGUTILEXPORT svn_error_t *svn_swig_py_client_blame_receiver_func(void *baton, apr_int64_t line_no, svn_revnum_t revision, @@ -214,6 +257,7 @@ apr_pool_t *pool); /* auth provider callbacks */ +SWIGUTILEXPORT svn_error_t *svn_swig_py_auth_simple_prompt_func( svn_auth_cred_simple_t **cred, void *baton, @@ -222,6 +266,7 @@ svn_boolean_t may_save, apr_pool_t *pool); +SWIGUTILEXPORT svn_error_t *svn_swig_py_auth_username_prompt_func( svn_auth_cred_username_t **cred, void *baton, @@ -229,6 +274,7 @@ svn_boolean_t may_save, apr_pool_t *pool); +SWIGUTILEXPORT svn_error_t *svn_swig_py_auth_ssl_server_trust_prompt_func( svn_auth_cred_ssl_server_trust_t **cred, void *baton, @@ -238,6 +284,7 @@ svn_boolean_t may_save, apr_pool_t *pool); +SWIGUTILEXPORT svn_error_t *svn_swig_py_auth_ssl_client_cert_prompt_func( svn_auth_cred_ssl_client_cert_t **cred, void *baton, @@ -245,6 +292,7 @@ svn_boolean_t may_save, apr_pool_t *pool); +SWIGUTILEXPORT svn_error_t *svn_swig_py_auth_ssl_client_cert_pw_prompt_func( svn_auth_cred_ssl_client_cert_pw_t **cred, void *baton,