示例#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])
示例#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"])