You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.8 KiB
87 lines
2.8 KiB
#!/usr/bin/env python3
|
|
from setuptools import setup
|
|
|
|
# Available at setup time due to pyproject.toml
|
|
from pybind11.setup_helpers import Pybind11Extension, build_ext
|
|
from pybind11 import get_cmake_dir
|
|
|
|
VERSION_INFO = (1, 2, 0)
|
|
DATE_INFO = (2013, 2, 10) # YEAR, MONTH, DAY
|
|
VERSION = '.'.join(str(i) for i in VERSION_INFO)
|
|
REVISION = '%04d%02d%02d' % DATE_INFO
|
|
BUILD_INFO = "MMSeg v" + VERSION + " (" + REVISION + ")"
|
|
AUTHOR = "pluskid & kronuz & zsp007"
|
|
AUTHOR_EMAIL = 'pluskid@gmail.com'
|
|
URL = 'http://github.com/pluskid/pymmseg-cpp'
|
|
DOWNLOAD_URL = 'https://github.com/pluskid/pymmseg-cpp/archive/master.tar.gz'
|
|
LICENSE = "MIT"
|
|
PROJECT = "pymmseg"
|
|
|
|
|
|
def read(fname):
|
|
import os
|
|
try:
|
|
return open(os.path.join(os.path.dirname(__file__),
|
|
fname)).read().strip()
|
|
except IOError:
|
|
return ''
|
|
|
|
|
|
extra = {}
|
|
import sys
|
|
if sys.version_info >= (3, 0):
|
|
extra.update(use_2to3=True, )
|
|
|
|
# The main interface is through Pybind11Extension.
|
|
# * You can add cxx_std=11/14/17, and then build_ext can be removed.
|
|
# * You can set include_pybind11=false to add the include directory yourself,
|
|
# say from a submodule.
|
|
#
|
|
# Note:
|
|
# Sort input source files if you glob sources to ensure bit-for-bit
|
|
# reproducible builds (https://github.com/pybind/python_example/pull/53)
|
|
|
|
ext_modules = [
|
|
Pybind11Extension(
|
|
"mmseg",
|
|
[
|
|
'mmseg/mmseg-cpp/mmseg.cpp', 'mmseg/mmseg-cpp/algor.cpp',
|
|
'mmseg/mmseg-cpp/dict.cpp', 'mmseg/mmseg-cpp/memory.cpp'
|
|
],
|
|
include_dirs=['mmseg/mmseg-cpp'],
|
|
# Example: passing in the version to the compiled code
|
|
define_macros=[('VERSION_INFO', VERSION_INFO)],
|
|
),
|
|
]
|
|
|
|
setup(
|
|
name=PROJECT,
|
|
version=VERSION,
|
|
description=read('DESCRIPTION'),
|
|
long_description=read('README'),
|
|
author=AUTHOR,
|
|
author_email=AUTHOR_EMAIL,
|
|
url=URL,
|
|
download_url=DOWNLOAD_URL,
|
|
license=LICENSE,
|
|
keywords='mmseg chinese word segmentation tokenization',
|
|
classifiers=[
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent", "Programming Language :: Python",
|
|
"Programming Language :: Python :: 3", "Topic :: Text Processing",
|
|
"Topic :: Software Development :: Libraries :: Python Modules"
|
|
],
|
|
setup_requires=["pybind11"],
|
|
install_requires=["pybind11"],
|
|
#packages=['mmseg'],
|
|
ext_modules=ext_modules,
|
|
extras_require={"test": "pytest"},
|
|
# Currently, build_ext only provides an optional "highest supported C++
|
|
# level" feature, but in the future it may provide more features.
|
|
cmdclass={"build_ext": build_ext},
|
|
package_data={'mmseg': ['data/*.dic']},
|
|
scripts=['bin/pymmseg'],
|
|
**extra)
|