~ubuntu-branches/ubuntu/feisty/python-numpy/feisty

« back to all changes in this revision

Viewing changes to numpy/distutils/extension.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2006-07-12 10:00:24 UTC
  • Revision ID: james.westby@ubuntu.com-20060712100024-5lw9q2yczlisqcrt
Tags: upstream-0.9.8
ImportĀ upstreamĀ versionĀ 0.9.8

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"""distutils.extension
 
2
 
 
3
Provides the Extension class, used to describe C/C++ extension
 
4
modules in setup scripts.
 
5
 
 
6
Overridden to support f2py.
 
7
"""
 
8
 
 
9
__revision__ = "$Id: extension.py,v 1.1 2005/04/09 19:29:34 pearu Exp $"
 
10
 
 
11
from distutils.extension import Extension as old_Extension
 
12
 
 
13
import re
 
14
cxx_ext_re = re.compile(r'.*[.](cpp|cxx|cc)\Z',re.I).match
 
15
fortran_pyf_ext_re = re.compile(r'.*[.](f90|f95|f77|for|ftn|f|pyf)\Z',re.I).match
 
16
 
 
17
class Extension(old_Extension):
 
18
    def __init__ (self, name, sources,
 
19
                  include_dirs=None,
 
20
                  define_macros=None,
 
21
                  undef_macros=None,
 
22
                  library_dirs=None,
 
23
                  libraries=None,
 
24
                  runtime_library_dirs=None,
 
25
                  extra_objects=None,
 
26
                  extra_compile_args=None,
 
27
                  extra_link_args=None,
 
28
                  export_symbols=None,
 
29
                  swig_opts=None,
 
30
                  depends=None,
 
31
                  language=None,
 
32
                  f2py_options=None,
 
33
                  module_dirs=None,
 
34
                 ):
 
35
        old_Extension.__init__(self,name, [],
 
36
                               include_dirs,
 
37
                               define_macros,
 
38
                               undef_macros,
 
39
                               library_dirs,
 
40
                               libraries,
 
41
                               runtime_library_dirs,
 
42
                               extra_objects,
 
43
                               extra_compile_args,
 
44
                               extra_link_args,
 
45
                               export_symbols)
 
46
        # Avoid assert statements checking that sources contains strings:
 
47
        self.sources = sources
 
48
 
 
49
        # Python 2.4 distutils new features
 
50
        self.swig_opts = swig_opts or []
 
51
 
 
52
        # Python 2.3 distutils new features
 
53
        self.depends = depends or []
 
54
        self.language = language
 
55
 
 
56
        # numpy_distutils features
 
57
        self.f2py_options = f2py_options or []
 
58
        self.module_dirs = module_dirs or []
 
59
 
 
60
        return
 
61
 
 
62
    def has_cxx_sources(self):
 
63
        for source in self.sources:
 
64
            if cxx_ext_re(str(source)):
 
65
                return True
 
66
        return False
 
67
 
 
68
    def has_f2py_sources(self):
 
69
        for source in self.sources:
 
70
            if fortran_pyf_ext_re(source):
 
71
                return True
 
72
        return False
 
73
 
 
74
# class Extension