64 lines
2.2 KiB
Python
64 lines
2.2 KiB
Python
|
import os
|
||
|
import sys
|
||
|
import subprocess
|
||
|
|
||
|
|
||
|
def configuration(parent_package='',top_path=None):
|
||
|
from numpy.distutils.misc_util import Configuration
|
||
|
from scipy._build_utils.compiler_helper import set_cxx_flags_hook
|
||
|
|
||
|
config = Configuration('sparse',parent_package,top_path)
|
||
|
|
||
|
config.add_data_dir('tests')
|
||
|
|
||
|
config.add_subpackage('linalg')
|
||
|
config.add_subpackage('csgraph')
|
||
|
|
||
|
config.add_extension('_csparsetools',
|
||
|
sources=['_csparsetools.c'])
|
||
|
|
||
|
def get_sparsetools_sources(ext, build_dir):
|
||
|
# Defer generation of source files
|
||
|
subprocess.check_call([sys.executable,
|
||
|
os.path.join(os.path.dirname(__file__),
|
||
|
'generate_sparsetools.py'),
|
||
|
'--no-force'])
|
||
|
return []
|
||
|
|
||
|
depends = ['sparsetools_impl.h',
|
||
|
'bsr_impl.h',
|
||
|
'csc_impl.h',
|
||
|
'csr_impl.h',
|
||
|
'other_impl.h',
|
||
|
'bool_ops.h',
|
||
|
'bsr.h',
|
||
|
'complex_ops.h',
|
||
|
'coo.h',
|
||
|
'csc.h',
|
||
|
'csgraph.h',
|
||
|
'csr.h',
|
||
|
'dense.h',
|
||
|
'dia.h',
|
||
|
'sparsetools.h',
|
||
|
'util.h']
|
||
|
depends = [os.path.join('sparsetools', hdr) for hdr in depends],
|
||
|
sparsetools = config.add_extension('_sparsetools',
|
||
|
define_macros=[('__STDC_FORMAT_MACROS', 1)],
|
||
|
depends=depends,
|
||
|
include_dirs=['sparsetools'],
|
||
|
sources=[os.path.join('sparsetools', 'sparsetools.cxx'),
|
||
|
os.path.join('sparsetools', 'csr.cxx'),
|
||
|
os.path.join('sparsetools', 'csc.cxx'),
|
||
|
os.path.join('sparsetools', 'bsr.cxx'),
|
||
|
os.path.join('sparsetools', 'other.cxx'),
|
||
|
get_sparsetools_sources]
|
||
|
)
|
||
|
sparsetools._pre_build_hook = set_cxx_flags_hook
|
||
|
|
||
|
return config
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
from numpy.distutils.core import setup
|
||
|
setup(**configuration(top_path='').todict())
|