コード例 #1
0
ファイル: setup.py プロジェクト: bjodah/cython_umfpack
def generate_pxd():
    """
    Uses cwrap (https://github.com/geggo/cwrap)

    and

    c_defines_to_pxd_enum.py (hacked for this example)
    """
    from cwrap.config import Config, File
    import sys
    import os
    import glob

    # Run cwrap (output in CWRAP_OUT)
    # if not LLVM_BIN_PATH in sys.path:
    #     sys.path.append(LLVM_BIN_PATH)
    if not os.path.exists(CWRAP_OUT):
        os.makedirs(CWRAP_OUT)
    umfpack_headers = glob.glob(os.path.join(
        SUITESPARSE_INC, 'umfpack*'))
    cwrap_header_files = list(map(File, umfpack_headers))
    config_clang = Config('clang', files=cwrap_header_files,
                          save_dir = CWRAP_OUT,
                          include_dirs = [SUITESPARSE_INC]
                          )
    config_clang.generate()

    # Extract #define style enums (output to PXD_ENUM_OUT)
    import c_defines_to_pxd_enum
    if not os.path.exists(PXD_ENUM_OUT):
        os.makedirs(PXD_ENUM_OUT)
    c_defines_to_pxd_enum.main(umfpack_headers, PXD_ENUM_OUT)

    # Join resp. pxd files in cython_umfpack/
    for cwrap_pxd in glob.glob(os.path.join(
        CWRAP_OUT, '*.pxd')):
        pxd_basename = os.path.basename(cwrap_pxd)

        sources = [cwrap_pxd]
        enum_pxd = os.path.join(PXD_ENUM_OUT, pxd_basename)
        if os.path.isfile(enum_pxd):
            sources.append(enum_pxd)
        dest_basename = pxd_basename[1:] if pxd_basename.startswith('_') else pxd_basename
        dest = os.path.join('./cython_umfpack', dest_basename)
        cat(sources, dest)
コード例 #2
0
ファイル: runtest.py プロジェクト: yjmade/cwrap
from cwrap.config import Config, File
import sys

print(sys.argv)
if len(sys.argv) > 1:
    files = [File(f) for f in sys.argv[1:]]
else:
    files = [File('test.h')]

if __name__ == '__main__':
    #config = Config('gccxml', files=files, save_dir = 'tests/result_gccxml')
    #config.generate()

    print('------------------------')
    print()

    config_clang = Config(
        'clang',
        files=files,
        save_dir='tests/result_clang',
        #include_dirs = [], #/usr/include/c++/4.2.1
        #extern_name = '',
        #implementation_name = '',
        #language = 'c++',
    )
    config_clang.generate()
コード例 #3
0
ファイル: convert.py プロジェクト: yjmade/cwrap
from cwrap.config import Config, File

if __name__ == '__main__':
    config = Config('gccxml', files=[File('test.h')])
    config.generate()
コード例 #4
0
ファイル: runtest.py プロジェクト: XL64/cwrap
from cwrap.config import Config, File
import sys

print sys.argv
if len(sys.argv) > 1:
    files = [File(f) for f in sys.argv[1:]]
else:
    files = [File('test.h')]

if __name__ == '__main__':
    #config = Config('gccxml', files=files, save_dir = 'tests/result_gccxml')
    #config.generate()
    
    print '------------------------'
    print

    config_clang = Config('clang', files=files, 
                          save_dir = 'tests/result_clang',
                          #include_dirs = [], #/usr/include/c++/4.2.1
                          #extern_name = '',
                          #implementation_name = '',
                          #language = 'c++',
                          )
    config_clang.generate()