diff options
author | mattip <matti.picus@gmail.com> | 2015-11-24 20:04:41 +0200 |
---|---|---|
committer | mattip <matti.picus@gmail.com> | 2015-11-24 20:04:41 +0200 |
commit | ee2e12f801b23389ef98cb17a2b630ae08f23537 (patch) | |
tree | 87a2fa684f283b8da957eb1f2069f54b9b24fce4 /demo | |
parent | 9b242870670f270fc10bcb6d139efab8d1f17c83 (diff) | |
download | cffi-ee2e12f801b23389ef98cb17a2b630ae08f23537.tar.gz |
split the demo into two files
Diffstat (limited to 'demo')
-rw-r--r-- | demo/xclient.py | 37 | ||||
-rw-r--r-- | demo/xclient_build.py | 24 |
2 files changed, 32 insertions, 29 deletions
diff --git a/demo/xclient.py b/demo/xclient.py index 0d66d8e..b8c7232 100644 --- a/demo/xclient.py +++ b/demo/xclient.py @@ -1,35 +1,14 @@ -import sys +import sys, os + +# If the build script was run immediately before this script, the cffi module +# ends up in the current directory. Make sure we can import it. sys.path.append('.') + try: - import _xclient + from _xclient import ffi, lib except ImportError: - from cffi import FFI - _ffi = FFI() - _ffi.cdef(""" - - typedef ... Display; - typedef struct { ...; } Window; - - typedef struct { int type; ...; } XEvent; - - Display *XOpenDisplay(char *display_name); - Window DefaultRootWindow(Display *display); - int XMapRaised(Display *display, Window w); - Window XCreateSimpleWindow(Display *display, Window parent, int x, int y, - unsigned int width, unsigned int height, - unsigned int border_width, unsigned long border, - unsigned long background); - int XNextEvent(Display *display, XEvent *event_return); - """) - - _ffi.set_source('_xclient', """ - #include <X11/Xlib.h> - """, libraries=['X11']) - _ffi.compile() - import _xclient - -ffi = _xclient.ffi -lib = _xclient.lib + print 'run %s_build first, then make sure the shared object is on sys.path' % os.path.splitext(__file__)[0] + sys.exit(-1) class XError(Exception): pass diff --git a/demo/xclient_build.py b/demo/xclient_build.py new file mode 100644 index 0000000..b55f69f --- /dev/null +++ b/demo/xclient_build.py @@ -0,0 +1,24 @@ +from cffi import FFI +_ffi = FFI() +_ffi.cdef(""" + +typedef ... Display; +typedef struct { ...; } Window; + +typedef struct { int type; ...; } XEvent; + +Display *XOpenDisplay(char *display_name); +Window DefaultRootWindow(Display *display); +int XMapRaised(Display *display, Window w); +Window XCreateSimpleWindow(Display *display, Window parent, int x, int y, + unsigned int width, unsigned int height, + unsigned int border_width, unsigned long border, + unsigned long background); +int XNextEvent(Display *display, XEvent *event_return); +""") + +_ffi.set_source('_xclient', """ + #include <X11/Xlib.h> +""", libraries=['X11']) +_ffi.compile() + |