Skip to content
No description or website provided.
Python C Other
#4 Compare This branch is 72 commits ahead, 2 commits behind enthought:master.
Latest commit 5387ade Jun 20, 2013 @geggo Merge pull request #3 from lucidfrontier45/master
merged pull request #3, import error fixed
Failed to load latest commit information.
bin
cwrap
examples/test
test
tests added some test cases Mar 17, 2013
.gitignore
NOTES.rst
README
README.rst
libclang_show_ast.py
run.py Add tool to create a Cython pxd file Mar 21, 2013
runtest.py
setup.py

README.rst

libclang based frontend for cwrap

cwrap, written by Chris Colbert, is a tool for the automatic generation of Cython declarations (pxd files) from C/C++ header files.

This fork adds another frontend, using libclang of the llvm-project for parsing C/C++.

Requirements

  • the libclang library (libclang.so, libclang.dylib or libclang.dll), contained in llvm binary distribution needs to be somewhere on the binary search path.
  • if your header files contain const definitions, you need a Cython > 0.18 in order to be able to compile it

Getting started

  • checkout
  • try it (in cwrap):
python runtest.py tests/test.h
  • have a look at the generated pxd file
less tests/result_clang/_test.pxd
  • Additional testing (this command needs Python 2.7):
python -m unittest discover -s test

Current status

For C headers the libclang frontend produces useful results.

Rudimentary support for parsing C++ headers is provided. Known problems exist with supporting following C++ features:

  • class template (libclang misses support)
  • nested class definitions
  • default arguments
  • namespaces

Ideas for improvements

  • tests, tests, tests.
  • provide a way to configure which declarations get exposed (especially for nested includes), e.g., no definitions from system includes, give list of header files, ...
  • libclang enables parsing of comments, supporting doxygen syntax. automatically generate documentation comments. does cython support this for cdef extern?

Contributors

Chris Colbert (original cwrap), Gregor Thalhammer and Volker Mische (libclang frontend)

Something went wrong with that request. Please try again.