Skip to content
Snippets Groups Projects
Select Git revision
  • 3dde35a7e046a38f39f81856a2fa50112a735b45
  • master default protected
2 results

setup.py

Blame
  • setup.py 2.18 KiB
    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())