|
1
|
|
|
import sys |
|
2
|
|
|
import distutils.util |
|
3
|
|
|
from pathlib import Path |
|
4
|
|
|
from setuptools import setup, find_packages |
|
5
|
|
|
|
|
6
|
|
|
PACKAGES = find_packages() |
|
7
|
|
|
COMPILE_OPTIONS = { |
|
8
|
|
|
"msvc": ["/Ox", "/EHsc"], |
|
9
|
|
|
"other": ["-O3", "-Wno-strict-prototypes", "-Wno-unused-function"], |
|
10
|
|
|
} |
|
11
|
|
|
COMPILER_DIRECTIVES = { |
|
12
|
|
|
"language_level": -3, |
|
13
|
|
|
"embedsignature": True, |
|
14
|
|
|
"annotation_typing": False, |
|
15
|
|
|
} |
|
16
|
|
|
LINK_OPTIONS = {"msvc": [], "other": []} |
|
17
|
|
|
|
|
18
|
|
|
|
|
19
|
|
|
def is_new_osx(): |
|
20
|
|
|
"""Check whether we're on OSX >= 10.10""" |
|
21
|
|
|
name = distutils.util.get_platform() |
|
22
|
|
|
if sys.platform != "darwin": return False |
|
23
|
|
|
elif name.startswith("macosx-10"): |
|
24
|
|
|
minor_version = int(name.split("-")[1].split(".")[1]) |
|
25
|
|
|
if minor_version >= 7: return True |
|
26
|
|
|
else: return False |
|
27
|
|
|
else: return False |
|
28
|
|
|
|
|
29
|
|
|
|
|
30
|
|
|
if is_new_osx(): |
|
31
|
|
|
COMPILE_OPTIONS["other"].append("-stdlib=libc++") |
|
32
|
|
|
LINK_OPTIONS["other"].append("-lc++") |
|
33
|
|
|
LINK_OPTIONS["other"].append("-nodefaultlibs") |
|
34
|
|
|
|
|
35
|
|
|
|
|
36
|
|
|
def clean(path): |
|
37
|
|
|
for path in path.glob("**/*"): |
|
38
|
|
|
if path.is_file() and path.suffix in (".so", ".cpp"): |
|
39
|
|
|
print(f"Deleting {path.name}") |
|
40
|
|
|
path.unlink() |
|
41
|
|
|
|
|
42
|
|
|
|
|
43
|
|
|
def setup_package(): |
|
44
|
|
|
root = Path(__file__).parent |
|
45
|
|
|
|
|
46
|
|
|
setup( |
|
47
|
|
|
name='tracking_policy_agendas', |
|
48
|
|
|
packages=PACKAGES, |
|
49
|
|
|
version='1.0.0', |
|
50
|
|
|
url='https://github.com/MohammadForouhesh/tracking-policy-agendas', |
|
51
|
|
|
license='MIT', |
|
52
|
|
|
author='MohammadForouhesh', |
|
53
|
|
|
author_email='[email protected]', |
|
54
|
|
|
description='A Persian Twitter policy agenda tracking framework', |
|
55
|
|
|
package_data={"": ["*.pyx", "*.pxd", "*.pxi", "*.cu"]}, |
|
56
|
|
|
) |
|
57
|
|
|
|
|
58
|
|
|
|
|
59
|
|
|
if __name__ == '__main__': |
|
60
|
|
|
setup_package() |
|
61
|
|
|
|