> 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/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...)
> is the script, which generates code for .so file.
> Your feedback is welcome.
> --
> Roman Yakovenko
> C++ Python language binding
> http://www.language-binding.net/