Metadata-Version: 1.1
Name: ctypeslib2
Version: 2.0rc3
Summary: ctypeslib2 - FFI toolkit, relies on clang
Home-page: https://github.com/trolldbois/ctypeslib
Author: Loic Jaquemet
Author-email: loic.jaquemet+python@gmail.com
License: License :: OSI Approved :: MIT License
Download-URL: https://github.com/trolldbois/ctypeslib/releases
Description: ctypeslib with libclang
        -----------------------
        
        This fork of ctypeslib is mainly about using the libclang1>=3.4 python bindings
        to generate python code from C source code.
        
        ctypeslib contains these packages:
         - ``ctypeslib.codegen``       - a code generator
         - ``ctypeslib.contrib``       - various contributed modules
         - ``ctypeslib.util``          - assorted small helper functions
         - ``ctypeslib.test``          - unittests
        
        This fork of ctypeslib is heavily patched for clang.
        https://github.com/trolldbois/ctypeslib is based on 
         rev77594 of the original ctypeslib.
        git-svn-id: http://svn.python.org/projects/ctypes/trunk/ctypeslib@77594 
         6015fed2-1504-0410-9fe1-9d1591cc4771
        
        The original ctypeslib is written by
        author="Thomas Heller",
        author_email="theller@ctypes.org",
        
        Stable Distribution is available through pypi:
          https://pypi.python.org/pypi/ctypeslib2/
          sudo easy_install ctypeslib2 
          
        Usage
        -----
        usage: clang2py [-h] [--debug] [-c] [-d] [-k TYPEKIND] [-l DLLS] [-o OUTPUT]
                        [-r EXPRESSION] [-s SYMBOL] [-v] [-w W] [-m module]
                        [--preload DLL] [--show-ids SHOWIDS] [--max-depth N]
                        files [files ...]
        
        generate python ABI code from C code
        
        positional arguments:
          files               source filenames
        
        optional arguments:
          -h, --help          show this help message and exit
          --debug             setLevel to DEBUG
          -c                  include source file location in comments
          -d                  include docstrings containing C prototype and source
                              file location
          -k TYPEKIND         kind of type descriptions to include: d = #defines, e =
                              enumerations, f = functions, s = structures, t =
                              typedefs
          -l DLLS             libraries to search for exported functions
          -o OUTPUT           output filename (if not specified, standard output will
                              be used)
          -r EXPRESSION       regular expression for symbols to include (if neither
                              symbols nor expressions are specified,everything will be
                              included)
          -s SYMBOL           symbol to include (if neither symbols nor expressions
                              are specified,everything will be included)
          -v                  verbose output
          -w W                add all standard windows dlls to the searched dlls list
          -m module           Python module(s) containing symbols which will be
                              imported instead of generated
          --preload DLL       dlls to be loaded before all others (to resolve symbols)
          --show-ids SHOWIDS  Don't compute cursor IDs (very slow)
          --max-depth N       Limit cursor expansion to depth N
        
        About clang-args: You can pass modifier to clang after your file name. For
        example, try "-target x86_64" or "-target i386-linux" as the last argument to
        change the target CPU arch.
        
        
        Inner workings for memo
        -----------------------
        clang2py is a script that calls ctypeslib/ctypeslib/clang2py.py
        clang2py.py is mostly the old xml2py.py module forked to use libclang.
        clang2py.py calls ctypeslib/ctypeslib/codegen/codegenerator.py
        codegenerator.py calls ctypeslib/ctypeslib/codegen/clangparser.py
        clangparser.py uses libclang's python binding to access the clang internal 
         representation of the C source code. 
         It then translate each child of the AST tree to python objects as listed in 
         typedesc.
        codegenerator.py then uses these python object to generate ctypes-based python
         source code.
         
        Because clang is capable to handle different target architecture, this fork 
         {is/should be} able to produce cross-platform memory representation if needed.
        
        
        Setting up clang>=3.4
        ---------------------
        see http://llvm.org/apt/
        
          sudo apt-add-repository "deb http://llvm.org/apt/raring/ llvm-toolchain-raring main"
          sudo apt-get install libclang1-3.4 libclang-common-3.4-dev
          sudo echo `echo "/usr/lib/llvm-3.4/lib/" >> /etc/ld.so.conf.d/llvm-dev.conf`
          sudo ldconfig -n
        
        Setting up python-clang>=3.4
        ----------------------------
        This are the python bindings, not distributed by llvm as far as I know. 
        I made a python package for them.
        
          sudo easy_install clang
        
        
        
        
        
        
        
         
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
