[cairo] Re: cairo and pycairo 0.6.0cvs win32 builds

Steve Chaplin stevech1097 at yahoo.com.au
Wed Aug 10 07:03:07 PDT 2005


On Mon, 2005-08-08 at 12:27 -0700, Vittorio Palmisano wrote:
>         Hello,
>         you can find a win32 build for libpixman, glitz, cairo and
>         pycairo (for
>         python2.3) here:
>         
>         http://anakonda.altervista.org/archivio/
I had a look at this link, there's nothing there!

>         I have built them with mingw32, on attachment there is the
>         patch required for
>         pycairo, the command used is:
>          > python setup.py build -cmingw32
>          > python setup.py bdist_wininst
>         
>         for pycairo ./configure doesn't work, you have to add manually
>         a __init__.py file
>         before make bdist_wininst.

Why does setup.py need:
+import sys
        +if sys.platform == 'win32':
        +    include_dirs += get_include('freetype2')
        +    library_dirs += get_lib_dirs('freetype2')
        +    libraries += get_libs('freetype2') + ['gdi32','msimg32']
        
These cairo lines should pick up the freetype dependency
        +include_dirs = get_include('cairo')
        +library_dirs = get_lib_dirs('cairo')
        +libraries = get_libs('cairo')
        
If its a problem with the names 'freetype' and 'freetype2' not matching
then cairo or freetype should be patched.
        
        
I don't understand these lines:
         PyTypeObject PycairoContext_Type = {
        +#if defined(WIN32) || defined(__CYGWIN__)
        +    PyObject_HEAD_INIT(NULL)
        +#else /* ! WIN32 */
             PyObject_HEAD_INIT(&PyType_Type)
        -    0,                                  /* ob_size */
        +#endif

The line "PyObject_HEAD_INIT(&PyType_Type)" is used in
Python-2.4.1/Objects/listobject.c (and many other *.c files) so it looks
like a standard Python statement, why does it need to be changed?

gcc on Linux handles it OK. mingw uses gcc so I'd expect it to handle it
just the same.


pycairo/test/test.py has:
         if __name__ == "__main__":
        -    if sys.version_info < (2,4):
        -        raise SystemExit ("Python 2.4 or higher required")
        
because it uses doctest.DocFileSuite which is new in 2.4. Does it work
for you using Python 2.3?

Steve

Send instant messages to your online friends http://au.messenger.yahoo.com 



More information about the cairo mailing list