|
| 1 | +import platform |
1 | 2 | from setuptools import setup, Extension
|
2 | 3 | from Cython.Build import cythonize
|
3 | 4 | import numpy as np
|
4 | 5 |
|
| 6 | +SYSTEM = platform.system() |
| 7 | +CPU = platform.processor() |
| 8 | + |
| 9 | +C_COMPILE_ARGS = ["-std=c99", "-O3", "-ffast-math", "-DREP"] |
| 10 | +CXX_COMPILE_ARGS = ["-std=c++11", "-O3", "-ffast-math"] |
| 11 | +CXX_LINK_ARGS = ["-std=c++11"] |
| 12 | + |
| 13 | +if not CPU: |
| 14 | + CPU = platform.machine() |
| 15 | + |
| 16 | +if (SYSTEM != "Darwin") and (CPU not in 'arm64'): |
| 17 | + C_COMPILE_ARGS.append("-march=native") |
| 18 | + CXX_COMPILE_ARGS.append("-march=native") |
| 19 | + CXX_LINK_ARGS.append("-fopenmp") |
| 20 | + |
5 | 21 | extensions = [
|
6 | 22 | Extension(
|
7 | 23 | "radius_clustering.utils._emos",
|
8 | 24 | ["radius_clustering/utils/emos.pyx", "radius_clustering/utils/main-emos.c"],
|
9 | 25 | include_dirs=[np.get_include(), "radius_clustering/utils"],
|
10 |
| - extra_compile_args=["-std=c99", "-O3", "-march=native", "-ffast-math", "-DREP"], |
| 26 | + extra_compile_args=C_COMPILE_ARGS, |
11 | 27 | ),
|
12 | 28 | Extension(
|
13 | 29 | "radius_clustering.utils._mds_approx",
|
|
18 | 34 | ],
|
19 | 35 | include_dirs=[np.get_include(), "radius_clustering/utils"],
|
20 | 36 | language="c++",
|
21 |
| - extra_compile_args=["-std=c++11", "-O3", "-march=native", "-ffast-math"], |
22 |
| - extra_link_args=["-std=c++11", "-fopenmp"], |
| 37 | + extra_compile_args=CXX_COMPILE_ARGS, |
| 38 | + extra_link_args=CXX_LINK_ARGS, |
23 | 39 | ),
|
24 | 40 | ]
|
25 | 41 |
|
|
0 commit comments