-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
80 lines (69 loc) · 2.58 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
from setuptools import setup, Extension
from Cython.Build import cythonize
import cyspams
import sys
import os
import configparser
from multiprocessing import cpu_count
libraries = []
library_dirs = []
include_dirs = []
extra_compile_args = []
# cyspams headers
include_dirs.extend(cyspams.get_include())
# OpenBLAS library (cyspams requirement)
# try:
# openblas_dir = os.environ['OPENBLAS_DIR']
# print('AMICO openblas_dir:', openblas_dir)
# except KeyError as err:
# print(f"\033[31mKeyError: cannot find the {err} env variable\033[0m")
# exit(1)
# include_dirs.extend([openblas_dir+'/include'])
# library_dirs.extend([openblas_dir+'/lib'])
# if sys.platform.startswith('win32'):
# libraries.extend(['libopenblas']) # .lib filenames
# extra_compile_args.extend(['/std:c++14'])
# if sys.platform.startswith('linux'):
# libraries.extend(['stdc++', 'openblas']) # library names (not filenames)
# extra_compile_args.extend(['-std=c++14'])
# if sys.platform.startswith('darwin'):
# libraries.extend(['stdc++', 'openblas']) # library names (not filenames)
# extra_compile_args.extend(['-std=c++14'])
config = configparser.ConfigParser()
config.read('site.cfg')
if 'openblas' in config:
libraries.extend([config['openblas']['libraries']])
library_dirs.extend([config['openblas']['library_dirs']])
include_dirs.extend([config['openblas']['include_dirs']])
print(f"\033[32mFound openblas section in site.cfg\033[0m")
print(f"\033[32mlibraries: {libraries}\033[0m")
print(f"\033[32mlibrary_dirs: {library_dirs}\033[0m")
print(f"\033[32minclude_dirs: {include_dirs}\033[0m")
else:
print(f"\033[31mKeyError: cannot find the openblas section in site.cfg\033[0m")
exit(1)
if sys.platform.startswith('win32'):
extra_compile_args.extend(['/std:c++14', '/fp:fast'])
if sys.platform.startswith('linux'):
libraries.extend(['stdc++']) # library names (not filenames)
extra_compile_args.extend(['-std=c++14', '-Ofast'])
if sys.platform.startswith('darwin'):
libraries.extend(['stdc++']) # library names (not filenames)
extra_compile_args.extend(['-std=c++14', '-Ofast'])
extensions = [
Extension(
'amico.models',
sources=['amico/models.pyx'],
include_dirs=include_dirs,
libraries=libraries,
library_dirs=library_dirs,
extra_compile_args=extra_compile_args
),
Extension(
'amico.lut',
sources=['amico/lut.pyx']
)
]
setup(
ext_modules=cythonize(extensions, nthreads=cpu_count())
)