forked from nasa/puma
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
100 lines (91 loc) · 3.93 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
from setuptools import setup, Command, find_packages
from distutils.extension import Extension
import numpy as np
import os
from sys import platform
class CleanCommand(Command):
"""Custom clean command to tidy up the project root."""
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
os.system('rm -vrf build dist *.pyc *.tgz python/*.egg-info')
# add cython code to the pumapy extensions
try:
from Cython.Build import cythonize
extensions = cythonize([
Extension("pumapy.generation.tpms_utils",
["python/pumapy/generation/tpms_utils.pyx"]),
Extension("pumapy.physicsmodels.isotropic_conductivity_utils",
["python/pumapy/physicsmodels/isotropic_conductivity_utils.pyx"]),
Extension("pumapy.physicsmodels.anisotropic_conductivity_utils",
["python/pumapy/physicsmodels/anisotropic_conductivity_utils.pyx"]),
Extension("pumapy.physicsmodels.elasticity_utils",
["python/pumapy/physicsmodels/elasticity_utils.pyx"]),
])
except ImportError:
extensions = [
Extension("pumapy.generation.tpms_utils",
["python/pumapy/generation/tpms_utils.c"]),
Extension("pumapy.physicsmodels.isotropic_conductivity_utils",
["python/pumapy/physicsmodels/isotropic_conductivity_utils.c"]),
Extension("pumapy.physicsmodels.anisotropic_conductivity_utils",
["python/pumapy/physicsmodels/anisotropic_conductivity_utils.c"]),
Extension("pumapy.physicsmodels.elasticity_utils",
["python/pumapy/physicsmodels/elasticity_utils.c"]),
]
# add PuMA C++ library to the extensions
# env_dir = os.environ['CONDA_PREFIX']
# src_path = "./cpp/src"
# include_dirs = [x[0] for x in os.walk(os.path.abspath(src_path))]
# include_dirs.append(np.get_include())
# include_dirs.append(env_dir + "/include")
# include_dirs.append(env_dir + "/include/eigen3/Eigen")
# include_dirs.append(os.path.abspath(src_path))
# if platform == "darwin":
# extra_compile_args = ["-Xpreprocessor", "-fopenmp", "--std=c++0x", "-Wno-format", "-Wno-literal-conversion",
# "-Wno-deprecated-register", "-Wno-return-type"]
# else: # linux
# extra_compile_args = ["-fopenmp", "--std=c++0x"]
# extensions.append(Extension('pumapy.utilities.libPuMA', sources=['/python/pumapy/utilities/puma_v3_wrapper.cpp'],
# libraries=["omp", "fftw3", "fftw3_threads"], include_dirs=include_dirs,
# extra_compile_args=extra_compile_args))
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
# pumapy package setup
setup(
name="pumapy",
version="3.0",
author="PuMA team",
maintainer_email="[email protected], [email protected]",
description="A package to compute material properties from micro-CT data.",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://gitlab.com/jcfergus/puma-dev",
project_urls={
"Bug Tracker": "https://gitlab.com/jcfergus/puma-dev/issues",
},
platforms=["Linux", "Mac"],
package_dir={"": "python"},
packages=find_packages(where="python"),
ext_modules=extensions,
include_dirs=[np.get_include()],
cmdclass={
'clean': CleanCommand,
},
setup_requires=[
"setuptools",
"wheel",
"numpy",
],
install_requires=[
"numpy",
"scipy",
"scikit-image",
"matplotlib",
"pyevtk",
"numpy-stl",
],
)