-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.py
More file actions
91 lines (84 loc) · 4.26 KB
/
setup.py
File metadata and controls
91 lines (84 loc) · 4.26 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
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
import os
import sys
import numpy as np
from subprocess import call
from Cython.Build import cythonize
from setuptools import setup, find_packages, Extension
# Extension modules
ext_modules = []
# MUMPS
mumps_lib = os.environ.get('MOS_DEVKIT_MUMPS_LIB')
mumps_inc_dir = os.environ.get('MOS_DEVKIT_MUMPS_INC_DIR')
mumps_lib_dir = os.environ.get('MOS_DEVKIT_MUMPS_LIB_DIR')
if mumps_lib:
ext_modules += cythonize([Extension(name='mos.devkit.linalg._mumps._dmumps',
sources=['./mos/devkit/linalg/_mumps/_dmumps.pyx'],
libraries=[mumps_lib],
include_dirs=[mumps_inc_dir],
library_dirs=[mumps_lib_dir],
extra_link_args=[])])
# IPOPT
ipopt_lib = os.environ.get('MOS_DEVKIT_IPOPT_LIB')
ipopt_inc_dir = os.environ.get('MOS_DEVKIT_IPOPT_INC_DIR')
ipopt_lib_dir = os.environ.get('MOS_DEVKIT_IPOPT_LIB_DIR')
if ipopt_lib:
ext_modules += cythonize([Extension(name='mos.devkit.solver._ipopt._ipopt',
sources=['./mos/devkit/solver/_ipopt/_ipopt.pyx'],
libraries=[ipopt_lib],
include_dirs=[np.get_include(), ipopt_inc_dir],
library_dirs=[ipopt_lib_dir],
extra_link_args=[])])
# CLP
clp_lib = os.environ.get('MOS_DEVKIT_CLP_LIB')
clp_inc_dir = os.environ.get('MOS_DEVKIT_CLP_INC_DIR')
clp_lib_dir = os.environ.get('MOS_DEVKIT_CLP_LIB_DIR')
if clp_lib:
ext_modules += cythonize([Extension(name='mos.devkit.solver._clp._clp',
sources=['./mos/devkit/solver/_clp/_clp.pyx'],
libraries=[clp_lib],
include_dirs=[np.get_include(), clp_inc_dir],
library_dirs=[clp_lib_dir],
extra_link_args=[])])
# CBC
cbc_lib = os.environ.get('MOS_DEVKIT_CBC_LIB')
cbc_inc_dir = os.environ.get('MOS_DEVKIT_CBC_INC_DIR')
cbc_lib_dir = os.environ.get('MOS_DEVKIT_CBC_LIB_DIR')
if cbc_lib:
ext_modules += cythonize([Extension(name='mos.devkit.solver._cbc._cbc',
sources=['./mos/devkit/solver/_cbc/_cbc.pyx'],
libraries=[cbc_lib],
include_dirs=[np.get_include(), cbc_inc_dir],
library_dirs=[cbc_lib_dir],
extra_link_args=[])])
# Expression evaluator
ext_modules += cythonize([Extension(name='mos.devkit.model._eval._eval',
sources=['./mos/devkit/model/_eval/_eval.pyx',
'./mos/devkit/model/_eval/evaluator.c',
'./mos/devkit/model/_eval/node.c'],
libraries=[],
include_dirs=[np.get_include(), './mos/devkit/model/_eval'],
library_dirs=[],
extra_link_args=[])])
setup(name='mos-devkit',
zip_safe=False,
version='0.1.0',
author='Fuinn',
url='https://github.com/Fuinn/mos-devkit-py',
description='Python model development kit for MOS',
license='BSD 3-Clause License',
packages=find_packages(),
include_package_data=True,
classifiers=['Development Status :: 4 - Beta',
'License :: OSI Approved :: BSD License',
'Operating System :: Microsoft :: Windows',
'Operating System :: MacOS',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python :: 3.6'],
package_data={'mos.devkit.linalg._mumps' : ['libcoinmumps*'],
'mos.devkit.solver._ipopt' : ['libipopt*'],
'mos.devkit.solver._clp' : ['libClp*'],
'mos.devkit.solver._cbc' : ['libCbc*']},
install_requires=['cython>=0.20.1',
'numpy>=1.11.2',
'scipy>=0.18.1'],
ext_modules=ext_modules)