setup.py 1.95 KB
Newer Older
Hang Zhang's avatar
init  
Hang Zhang committed
1
2
3
4
5
6
7
8
9
10
##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
## Created by: Hang Zhang
## ECE Department, Rutgers University
## Email: zhang.hang@rutgers.edu
## Copyright (c) 2017
##
## This source code is licensed under the MIT-style license found in the
## LICENSE file in the root directory of this source tree 
##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Hang Zhang's avatar
v1.0.1  
Hang Zhang committed
11
import io
Hang Zhang's avatar
init  
Hang Zhang committed
12
import os
Hang Zhang's avatar
v1.0.1  
Hang Zhang committed
13
import re
Hang Zhang's avatar
init  
Hang Zhang committed
14
import sys
15
import subprocess
Hang Zhang's avatar
init  
Hang Zhang committed
16
17

from setuptools import setup, find_packages
Hang Zhang's avatar
v0.1.0  
Hang Zhang committed
18
19
import setuptools.command.develop 
import setuptools.command.install 
Hang Zhang's avatar
init  
Hang Zhang committed
20

Hang Zhang's avatar
v0.1.0  
Hang Zhang committed
21
cwd = os.path.dirname(os.path.abspath(__file__))
Hang Zhang's avatar
init  
Hang Zhang committed
22

Hang Zhang's avatar
v0.1.0  
Hang Zhang committed
23
24
# run test scrip after installation
class install(setuptools.command.install.install):
25
    def run(self):
Hang Zhang's avatar
v0.1.0  
Hang Zhang committed
26
27
        self.create_version_file()
        setuptools.command.install.install.run(self)
28
        subprocess.check_call("python test/test.py".split())
Hang Zhang's avatar
v0.1.0  
Hang Zhang committed
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    @staticmethod
    def create_version_file():
        global version, cwd
        print('-- Building version ' + version)
        version_path = os.path.join(cwd, 'encoding', 'version.py')
        with open(version_path, 'w') as f:
            f.write("__version__ = '{}'\n".format(version))

version = '0.1.0'
try:
    sha = subprocess.check_output(['git', 'rev-parse', 'HEAD'], 
        cwd=cwd).decode('ascii').strip()
    version += '+' + sha[:7]
except Exception:
    pass
44

Hang Zhang's avatar
init  
Hang Zhang committed
45
setup(
Hang Zhang's avatar
indent  
Hang Zhang committed
46
    name="encoding",
Hang Zhang's avatar
v0.1.0  
Hang Zhang committed
47
48
49
    version=version,
    description="PyTorch Encoding",
    url="https://github.com/zhanghang1989/PyTorch-Encoding",
Hang Zhang's avatar
indent  
Hang Zhang committed
50
51
52
53
54
55
56
57
58
59
60
    author="Hang Zhang",
    author_email="zhang.hang@rutgers.edu",
    # Require cffi.
    install_requires=["cffi>=1.0.0"],
    setup_requires=["cffi>=1.0.0"],
    # Exclude the build files.
    packages=find_packages(exclude=["build"]),
    # Package where to put the extensions. Has to be a prefix of build.py.
    ext_package="",
    # Extensions to compile.
    cffi_modules=[
Hang Zhang's avatar
v0.1.0  
Hang Zhang committed
61
        os.path.join(cwd, "build.py:ffi")
Hang Zhang's avatar
indent  
Hang Zhang committed
62
    ],
63
    cmdclass={
Hang Zhang's avatar
v0.1.0  
Hang Zhang committed
64
        'install': install,
65
    },
Hang Zhang's avatar
init  
Hang Zhang committed
66
)