-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.py
More file actions
46 lines (37 loc) · 1.21 KB
/
setup.py
File metadata and controls
46 lines (37 loc) · 1.21 KB
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
"""
Setup compilation file for the AMD C Wrapper
"""
import os
import sys
from glob import glob
from typing import Union
from setuptools import Extension, setup
amd_source_dir = os.path.join("SuiteSparse", "AMD", "Source")
amd_include_dir = os.path.join("SuiteSparse", "AMD", "Include")
amd_config_dir = os.path.join("SuiteSparse", "SuiteSparse_config")
amd_sources = glob(os.path.join(amd_source_dir, "*.c"))
amd_config_sources = glob(os.path.join(amd_config_dir, "*.c"))
define_macros: list[tuple[str, Union[str, None]]] = []
compilation_flags: list[str] = []
if sys.platform == "win32":
define_macros += [
("SUITESPARSE_HAVE_CLOCK_GETTIME", "0"),
("SUITESPARSE_CONFIG_HAS_OPENMP", "0"),
("SUITESPARSE_TIMER_ENABLED", "0"),
]
compilation_flags += ["/O2", "-DNTIMER"]
else:
compilation_flags += ["-O3"]
setup(
version="0.3.5",
ext_modules=[
Extension(
name="suitesparse_amd._amd",
sources=["src/suitesparse_amd/_amd.c"] + amd_sources + amd_config_sources,
include_dirs=[amd_include_dir, amd_config_dir],
language="c",
define_macros=define_macros,
extra_compile_args=compilation_flags,
)
],
)