[ANN] Py++ based ctypes code generator

17 views
Skip to first unread message

Roman Yakovenko

unread,
Jan 20, 2009, 2:16:37 PM1/20/09
to python-ogre...@googlegroups.com
Hello.

I would like to announce a new code generator for ctypes package.

The new code generator is integrated with Py++ package and reuse most

of its infrastructure:

* GCC-XML - generates an XML description of a C++ program from GCC's
internal representation

* pygccxml - powerful and simple Python package to work GCCXML generated file.

* Py++ design, code and utilities

* It was build with future ( ctypes-cpp ) functionality in mind.

* It has cross-platform ( Windows XP and Linux Ubuntu 8.10 ) unit tests

How it works:

1. Using pygccxml, the source files are parsed ( using pygccxml ) and

in-memory description of the code is created

2. .dll, .map or .so file is parsed ( pygccxml ) and exported symbols

list is created

3. Using decorated and undecorated names, mapping between declarations
and exported symbols is created.

4. The exported symbols and the mapping are used to:

* define for what declarations the code should be generated

* find out function calling convention

5. The last step - the code is generated

Supported functionality:

* shared libraries, that were compiled using C or C++ compiler

* free functions, including variable number of arguments

* [global|member] [named|anonymous] variables

* [named|anonymous|opaque|nested] structures

* enumerations

* typedefs

Examples:

Is it useful? - Yes. I created example, which generates code for
GMP( http://gmplib.org/ ) library. The following link
(http://pygccxml.svn.sourceforge.net/viewvc/pygccxml/pyplusplus_dev/examples/gmplib_dev/)
will take you to the example.

* dev - directory, which contains code generator source code

* pygmplib - directory, which contains generated code - Python
package, which provides access to GMP lib functionality

* test.py - Python script - tester.

Want to try?

Windows users:

http://sourceforge.net/project/showfiles.php?group_id=118209
contains few packages

* ctypes code generator - stand alone executable, which
generates code for a .dll file

* gccxml-setup - gccxml setup file

Linux users:

Sorry, no binaries :-(

* you need to check-out( http://gccxml.org/HTML/Download.html)
and build gccxml ( http://gccxml.org/HTML/Install.html )

* you need to check-out Py++ and pygccxml
(http://sourceforge.net/svn/?group_id=118209 )

* wrap_library.py
(http://pygccxml.svn.sourceforge.net/viewvc/pygccxml/pyplusplus_dev/scripts/)
is the script, which generates code for .so file.

Your feedback is welcome.

--

Roman Yakovenko

C++ Python language binding

http://www.language-binding.net/

JosephLisee

unread,
Jan 30, 2009, 1:39:48 AM1/30/09
to Python Ogre Developers
Is this "ctypes-cpp" going to be built? I couldn't find any
references online.

-Joe L.
> GMP(http://gmplib.org/) library. The following link
> (http://pygccxml.svn.sourceforge.net/viewvc/pygccxml/pyplusplus_dev/ex...)
> will take you to the example.
>
>    * dev - directory, which contains code generator source code
>
>    * pygmplib - directory, which contains generated code - Python
> package, which provides access to GMP lib functionality
>
>    * test.py - Python script - tester.
>
> Want to try?
>
>    Windows users:
>
>        http://sourceforge.net/project/showfiles.php?group_id=118209
> contains few packages
>
>        * ctypes code generator - stand alone executable, which
> generates code for a .dll file
>
>        * gccxml-setup - gccxml setup file
>
>    Linux users:
>
>        Sorry, no binaries :-(
>
>        * you need to check-out(http://gccxml.org/HTML/Download.html)
> and build gccxml (http://gccxml.org/HTML/Install.html)
>
>        * you need to check-out Py++ and pygccxml
> (http://sourceforge.net/svn/?group_id=118209)
>
>        * wrap_library.py
> (http://pygccxml.svn.sourceforge.net/viewvc/pygccxml/pyplusplus_dev/sc...)
Reply all
Reply to author
Forward
0 new messages