Ejemplo n.º 1
0
from distutils.core import setup
from distutils.core import Extension
import os
import subprocess
import sys

module = Extension("simplepinyin", ["simplepinyin.cpp"])
module.language = 'c++'

if os.system("pkg-config --exists libpinyin") != 0:
    print("Please install libpinyin.", file=sys.stderr)
    sys.exit(1)

libpinyin_args = subprocess.check_output(["pkg-config", "--cflags", "--libs", "libpinyin"], universal_newlines=True).strip().split(" ")
libpinyin_data = subprocess.check_output(["pkg-config", "--variable=pkgdatadir", "libpinyin"], universal_newlines=True).strip()+"/data"
#print(libpinyin_data)
module.include_dirs = [arg.lstrip("-I") for arg in libpinyin_args if arg.startswith("-I")]
module.library_dirs = [arg.lstrip("-L") for arg in libpinyin_args if arg.startswith("-L")]
module.libraries = [arg.lstrip("-l") for arg in libpinyin_args if arg.startswith("-l")]
module.define_macros = [("LIBPINYIN_DATA", "\""+libpinyin_data+"\"")]

setup(name="simplepinyin", version="1.0",
      ext_modules=[module])
Ejemplo n.º 2
0
#!/usr/bin/env python

# Author: Thomas Liu <*****@*****.**>
import os
from distutils.core import setup, Extension
LIBS=["apol", "qpol"]

try:
    inc=os.getenv("INCLUDES").split(" ")    
    INCLUDES=map(lambda x: x[2:], inc)
    LIBDIRS=map(lambda x: "/".join(x.split("/")[:-1]), os.getenv("LIBS").split())
except:
    INCLUDES=""
    LIBDIRS=""

extension_sesearch = Extension("setools._sesearch", [ "sesearch.c"])
extension_sesearch.include_dirs=INCLUDES
extension_sesearch.libraries=LIBS
extension_sesearch.library_dirs=LIBDIRS
extension_seinfo = Extension("setools._seinfo", [ "seinfo.c"])
extension_seinfo.include_dirs=INCLUDES
extension_seinfo.libraries=LIBS
extension_seinfo.library_dirs=LIBDIRS

setup(name = "setools", version="1.0", description="Python setools bindings", author="Thomas Liu", author_email="*****@*****.**", ext_modules=[extension_sesearch, extension_seinfo], packages=["setools"])
Ejemplo n.º 3
0
    "description": "Python Front-End / Wrapper for TOS-DataBridge (C/C++)",
    "author": "Jonathon Ogden",
    "author_email": "*****@*****.**",
    "packages": ['tosdb', 'tosdb/cli_scripts']
}

# the cross platfrom stub
ext_stub = Extension("_tosdb",
                     sources=["_tosdb.cpp"],
                     include_dirs=["../include"],
                     optional=True)

ext_win = Extension(**ext_stub.__dict__)

# add/override for Win
ext_win.library_dirs = ["../bin/Release/" + _SYS_ARCHD]
ext_win.libraries = [
    "_tos-databridge-shared-" + _SYS_ARCH,
    "_tos-databridge-static-" + _SYS_ARCH
]
ext_win.define_macros = [("THIS_IMPORTS_IMPLEMENTATION", None),
                         ("THIS_DOESNT_IMPORT_INTERFACE", None)]
ext_win.extra_compile_args = ["/EHsc"]
ext_win.extra_link_args = ["/LTCG"]

try:  # capture setup errors but allow setup to complete (optional=True)
    sio = StringIO()
    se = sys.stderr
    sys.stderr = sio
    setup(ext_modules=[ext_win if _SYS_IS_WIN else ext_stub], **setup_dict)
    sys.stderr = se
Ejemplo n.º 4
0
  "description": "Python Front-End / Wrapper for TOS-DataBridge (C/C++)",
  "author":"Jonathon Ogden",
  "author_email":"*****@*****.**",
  "packages": ['tosdb','tosdb/cli_scripts'] 
}      
         
# the cross platfrom stub
ext_stub = Extension( "_tosdb",
                      sources=[ "_tosdb.cpp" ], 
                      include_dirs=[ "../include" ],
                      optional=True )

ext_win = Extension( **ext_stub.__dict__ )

# add/override for Win
ext_win.library_dirs       =  [ "../bin/Release/"+ _SYS_ARCHD ]
ext_win.libraries          =  [ "_tos-databridge-shared-"+ _SYS_ARCH,
                                "_tos-databridge-static-"+ _SYS_ARCH ]
ext_win.define_macros      =  [ ("THIS_IMPORTS_IMPLEMENTATION",None),
                                ("THIS_DOESNT_IMPORT_INTERFACE",None) ]
ext_win.extra_compile_args =  ["/EHsc"]
ext_win.extra_link_args    =  ["/LTCG"]  
        
try: # capture setup errors but allow setup to complete (optional=True)   
    sio = StringIO()
    se = sys.stderr
    sys.stderr = sio  
    setup( ext_modules=[ ext_win if _SYS_IS_WIN else ext_stub], **setup_dict )  
    sys.stderr = se    
    if sio.getvalue(): 
        print( '\n', "+ Operation 'completed' with errors:\n")