annotate DEPENDENCIES/mingw32/Python27/Lib/site-packages/numpy/distutils/extension.py @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2a2c65a20a8b
children
rev   line source
Chris@87 1 """distutils.extension
Chris@87 2
Chris@87 3 Provides the Extension class, used to describe C/C++ extension
Chris@87 4 modules in setup scripts.
Chris@87 5
Chris@87 6 Overridden to support f2py.
Chris@87 7
Chris@87 8 """
Chris@87 9 from __future__ import division, absolute_import, print_function
Chris@87 10
Chris@87 11 import sys
Chris@87 12 import re
Chris@87 13 from distutils.extension import Extension as old_Extension
Chris@87 14
Chris@87 15 if sys.version_info[0] >= 3:
Chris@87 16 basestring = str
Chris@87 17
Chris@87 18
Chris@87 19 cxx_ext_re = re.compile(r'.*[.](cpp|cxx|cc)\Z', re.I).match
Chris@87 20 fortran_pyf_ext_re = re.compile(r'.*[.](f90|f95|f77|for|ftn|f|pyf)\Z', re.I).match
Chris@87 21
Chris@87 22 class Extension(old_Extension):
Chris@87 23 def __init__ (self, name, sources,
Chris@87 24 include_dirs=None,
Chris@87 25 define_macros=None,
Chris@87 26 undef_macros=None,
Chris@87 27 library_dirs=None,
Chris@87 28 libraries=None,
Chris@87 29 runtime_library_dirs=None,
Chris@87 30 extra_objects=None,
Chris@87 31 extra_compile_args=None,
Chris@87 32 extra_link_args=None,
Chris@87 33 export_symbols=None,
Chris@87 34 swig_opts=None,
Chris@87 35 depends=None,
Chris@87 36 language=None,
Chris@87 37 f2py_options=None,
Chris@87 38 module_dirs=None,
Chris@87 39 extra_f77_compile_args=None,
Chris@87 40 extra_f90_compile_args=None,
Chris@87 41 ):
Chris@87 42 old_Extension.__init__(self, name, [],
Chris@87 43 include_dirs,
Chris@87 44 define_macros,
Chris@87 45 undef_macros,
Chris@87 46 library_dirs,
Chris@87 47 libraries,
Chris@87 48 runtime_library_dirs,
Chris@87 49 extra_objects,
Chris@87 50 extra_compile_args,
Chris@87 51 extra_link_args,
Chris@87 52 export_symbols)
Chris@87 53 # Avoid assert statements checking that sources contains strings:
Chris@87 54 self.sources = sources
Chris@87 55
Chris@87 56 # Python 2.4 distutils new features
Chris@87 57 self.swig_opts = swig_opts or []
Chris@87 58 # swig_opts is assumed to be a list. Here we handle the case where it
Chris@87 59 # is specified as a string instead.
Chris@87 60 if isinstance(self.swig_opts, basestring):
Chris@87 61 import warnings
Chris@87 62 msg = "swig_opts is specified as a string instead of a list"
Chris@87 63 warnings.warn(msg, SyntaxWarning)
Chris@87 64 self.swig_opts = self.swig_opts.split()
Chris@87 65
Chris@87 66 # Python 2.3 distutils new features
Chris@87 67 self.depends = depends or []
Chris@87 68 self.language = language
Chris@87 69
Chris@87 70 # numpy_distutils features
Chris@87 71 self.f2py_options = f2py_options or []
Chris@87 72 self.module_dirs = module_dirs or []
Chris@87 73 self.extra_f77_compile_args = extra_f77_compile_args or []
Chris@87 74 self.extra_f90_compile_args = extra_f90_compile_args or []
Chris@87 75
Chris@87 76 return
Chris@87 77
Chris@87 78 def has_cxx_sources(self):
Chris@87 79 for source in self.sources:
Chris@87 80 if cxx_ext_re(str(source)):
Chris@87 81 return True
Chris@87 82 return False
Chris@87 83
Chris@87 84 def has_f2py_sources(self):
Chris@87 85 for source in self.sources:
Chris@87 86 if fortran_pyf_ext_re(source):
Chris@87 87 return True
Chris@87 88 return False
Chris@87 89
Chris@87 90 # class Extension