92 lines
2.6 KiB
Python
92 lines
2.6 KiB
Python
#!/usr/bin/env python
|
|
# coding: utf-8
|
|
|
|
# python setup.py sdist --formats=gztar
|
|
|
|
import os
|
|
import sys
|
|
import platform
|
|
|
|
try:
|
|
from setuptools import setup, Extension
|
|
except ImportError:
|
|
from distutils.core import setup, Extension
|
|
|
|
import glob
|
|
|
|
try:
|
|
import Cython.Compiler.Main as cython_compiler
|
|
|
|
have_cython = True
|
|
except ImportError:
|
|
have_cython = False
|
|
from distutils.command.build_ext import build_ext
|
|
|
|
DEBUG = False
|
|
|
|
src_dir = 'src'
|
|
ext_dir = os.path.join(src_dir, 'ext')
|
|
build_dir = 'build'
|
|
cchardet_dir = os.path.join(src_dir, 'cchardet/')
|
|
charsetdetect_dir = os.path.join(ext_dir, 'libcharsetdetect/')
|
|
nspr_emu_dir = os.path.join(charsetdetect_dir, 'nspr-emu/')
|
|
uchardet_dir = os.path.join(charsetdetect_dir, 'mozilla/extensions/universalchardet/src/base/')
|
|
|
|
if have_cython:
|
|
pyx_sources = glob.glob(cchardet_dir + '*.pyx')
|
|
sys.stderr.write('cythonize: %r\n' % (pyx_sources,))
|
|
cython_compiler.compile(pyx_sources, options=cython_compiler.CompilationOptions(cplus=True))
|
|
cchardet_sources = glob.glob(cchardet_dir + '*.cpp')
|
|
sources = cchardet_sources + [os.path.join(charsetdetect_dir, 'charsetdetect.cpp')] + glob.glob(uchardet_dir + '*.cpp')
|
|
|
|
macros = []
|
|
extra_compile_args = []
|
|
extra_link_args = []
|
|
|
|
if platform.system() == 'Windows':
|
|
macros.append(('WIN32', '1'))
|
|
|
|
if DEBUG:
|
|
macros.append(('DEBUG_chardet', '1'))
|
|
extra_compile_args.append('-g'),
|
|
extra_link_args.append('-g'),
|
|
|
|
cchardet_module = Extension(
|
|
'cchardet._cchardet',
|
|
sources=sources,
|
|
include_dirs=[uchardet_dir, nspr_emu_dir, charsetdetect_dir],
|
|
language='c++',
|
|
define_macros=macros,
|
|
)
|
|
|
|
setup(
|
|
name='cchardet',
|
|
author='PyYoshi',
|
|
author_email='myoshi321go@gmail.com',
|
|
url=r'https://github.com/PyYoshi/cChardet',
|
|
description='Universal encoding detector. This library is faster than chardet.',
|
|
long_description='''cChardet is high speed universal character encoding detector. - binding to charsetdetect.
|
|
This library is faster than chardet.
|
|
''',
|
|
version='1.1.0',
|
|
license='MIT License',
|
|
classifiers=[
|
|
'License :: OSI Approved :: MIT License',
|
|
'Programming Language :: Cython',
|
|
'Programming Language :: Python',
|
|
'Topic :: Software Development :: Libraries',
|
|
'Programming Language :: Python :: 2',
|
|
'Programming Language :: Python :: 3',
|
|
],
|
|
keywords=[
|
|
'cython',
|
|
'chardet',
|
|
'charsetdetect'
|
|
],
|
|
cmdclass={'build_ext': build_ext},
|
|
package_dir={'': src_dir},
|
|
packages=['cchardet', ],
|
|
ext_modules=[
|
|
cchardet_module
|
|
],
|
|
)
|