--- /dev/null
+ctypedef enum gboolean:
+ FALSE, TRUE
+
+cdef extern from "libpurple/account.h":
+ ctypedef struct PurpleAccount
+
+ cdef PurpleAccount *purple_account_new(char *username, char *protocol_id)
+
+ cdef void purple_account_set_password(PurpleAccount *account,
+ char *password)
+
+ cdef void purple_account_set_enabled(PurpleAccount *account, char *ui,
+ gboolean value)
+
+cdef extern from "libpurple/connection.h":
+ ctypedef struct PurpleConnection
+
+ cdef PurpleAccount *purple_connection_get_account(PurpleConnection *gc)
+
+
+
--- /dev/null
+cdef extern from "libpurple/blist.h":
+ ctypedef struct PurpleBuddyList
+
+ cdef void purple_set_blist(PurpleBuddyList *list)
+ cdef void purple_blist_load()
+ cdef PurpleBuddyList *purple_blist_new()
--- /dev/null
+cdef extern from "libpurple/core.h":
+ ctypedef struct PurpleCoreUiOps
+
+ cdef gboolean purple_core_init(char *ui)
+ cdef gboolean purple_core_migrate()
+ cdef void purple_core_set_ui_ops(PurpleCoreUiOps *ops)
--- /dev/null
+cdef extern from "libpurple/debug.h":
+ cdef void purple_debug_set_enabled(gboolean debug_enabled)
--- /dev/null
+cdef extern from "libpurple/eventloop.h":
+ ctypedef struct PurpleEventLoopUiOps
+
+ cdef void purple_eventloop_set_ui_ops(PurpleEventLoopUiOps *ops)
--- /dev/null
+cdef extern from "libpurple/idle.h":
+ ctypedef struct PurpleIdleUiOps
+
+ cdef void purple_idle_set_ui_ops(PurpleIdleUiOps *ops)
--- /dev/null
+cdef extern from "libpurple/plugin.h":
+ cdef void purple_plugins_add_search_path(char *path)
+ cdef void purple_plugins_load_saved(char *key)
--- /dev/null
+cdef extern from "libpurple/pounce.h":
+ cdef gboolean purple_pounces_load()
--- /dev/null
+cdef extern from "libpurple/prefs.h":
+ cdef void purple_prefs_rename(char *oldname, char *newname)
+ cdef char *purple_prefs_get_string(char *name)
+ cdef gboolean purple_prefs_load()
--- /dev/null
+cdef extern from "libpurple/util.h":
+ cdef void purple_util_set_user_dir(char *dir)
--- /dev/null
+#include "core/blist.pxd"
+#include "core/core.pxd"
+#include "core/debug.pxd"
+#include "core/eventloop.pxd"
+#include "core/idle.pxd"
+#include "core/plugin.pxd"
+#include "core/pounce.pxd"
+#include "core/prefs.pxd"
+#include "core/util.pxd"
--- /dev/null
+#!/usr/bin/env python
+import sys
+import os
+
+from setuptools import setup, find_packages, Extension
+from distutils.sysconfig import get_python_inc
+from Cython.Distutils import build_ext
+
+from subprocess import Popen, PIPE
+
+cflags = Popen(['pkg-config', '--cflags', 'purple'], stdout=PIPE).communicate()[0].split()
+ldflags = Popen(['pkg-config', '--libs', 'purple'], stdout=PIPE).communicate()[0].split()
+
+class pypurple_build_ext(build_ext):
+ def finalize_options(self):
+ build_ext.finalize_options(self)
+ self.include_dirs.insert(0, 'include')
+ self.pyrex_include_dirs.extend(self.include_dirs)
+
+setup(
+ name = 'python-pypurple',
+ version = '0.1',
+ author ='Bruno Abinader',
+ author_email='bruno.abinader@openbossa.org',
+ ext_modules=[Extension('purple',
+ sources=['purple.pyx'],
+ extra_compile_args=cflags,
+ extra_link_args=ldflags)],
+ cmdclass = {'build_ext': pypurple_build_ext},
+)