Ignore:
Timestamp:
04/15/10 08:46:14 (2 years ago)
Author:
Luper Rouch <luper.rouch@…>
Children:
a5ddfc01388e61386872d1e2747d8bfcccb65937
Parents:
d52a2e9e1acc40b1056ae2f58806bd9a4b6aff00
git-committer:
Luper Rouch <luper.rouch@…> (04/15/10 08:46:14)
Message:

pyflu.setuptools.cython: added more Extension arguments to the etension() class method, added an option to exclude files from search

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pyflu/pyflu/setuptools/cython.py

    r0a610e3 r6408560  
    1010    description = "compile all cython files" 
    1111    user_options = [ 
    12            ("include=", "I", ".pxi include directories (separated by ',')"), 
     12           ("include=", "I", "cython include directories (separated by ',')"), 
     13           ("exclude=", "e", "comma separated list of folders to exclude " 
     14                             "from search for .pyx files"), 
    1315           ("cplus", None, "compile to c++ (default: False)"), 
    1416           ("all", "a", "recompile all cython files (default: False)"), 
     
    1921    defaults = { 
    2022            "include": "", 
     23            "exclude": "", 
    2124            "cplus": False, 
    2225            "all": False, 
    2326        } 
    2427 
     28    def finalize_options(self): 
     29        self.include = [p for p in self.include.split(",") if p] 
     30        self.exclude = [p for p in self.exclude.split(",") if p] 
     31 
    2532    def run(self): 
    26         for infile in self.cython_files(): 
     33        for infile in self.cython_files(exclude=self.exclude): 
    2734            outfile = splitext(infile)[0] + self.outfiles_ext() 
    2835            if not self.all and \ 
     
    3441                cmd += "--cplus " 
    3542            if self.include: 
    36                 cmd += "-I %s " % self.include 
     43                cmd += "".join(["-I %s " % i for i in self.include]) 
    3744            cmd += infile 
    3845            print cmd 
     
    4552 
    4653    @classmethod 
    47     def cython_files(cls): 
    48         return iter_files(".pyx") 
     54    def cython_files(cls, exclude=None): 
     55        return iter_files(".pyx", exclude=exclude) 
    4956 
    5057    @classmethod 
    51     def extensions(cls, include_dirs, libraries, library_dirs, cplus=None, 
    52             additional_sources=None, extra_link_args=None, 
    53             extra_compile_args=None): 
     58    def extensions(cls, include_dirs=None, libraries=None, library_dirs=None, 
     59            cplus=None, additional_sources=None, extra_link_args=None, 
     60            extra_compile_args=None, exclude=None): 
     61        if include_dirs is None: 
     62            include_dirs = [] 
     63        if libraries is None: 
     64            libraries = [] 
     65        if library_dirs is None: 
     66            library_dirs = [] 
    5467        if cplus is None: 
    5568            cplus = cls.defaults.get("cplus", False) 
     
    6275        if extra_link_args is None: 
    6376            extra_link_args = [] 
     77        if exclude is None: 
     78            exclude = cls.defaults.get("exclude", "") 
     79            exclude = [e for e in exclude.split(",") if e] 
    6480        ret = [] 
    65         for path in cls.cython_files(): 
     81        for path in cls.cython_files(exclude=exclude): 
    6682            base, ext = splitext(path) 
    6783            ext_path = base + ext_ext 
Note: See TracChangeset for help on using the changeset viewer.