12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- """ Modified version of build_scripts that handles building scripts from functions.
- """
- from distutils.command.build_scripts import build_scripts as old_build_scripts
- from numpy.distutils import log
- from numpy.distutils.misc_util import is_string
- class build_scripts(old_build_scripts):
- def generate_scripts(self, scripts):
- new_scripts = []
- func_scripts = []
- for script in scripts:
- if is_string(script):
- new_scripts.append(script)
- else:
- func_scripts.append(script)
- if not func_scripts:
- return new_scripts
- build_dir = self.build_dir
- self.mkpath(build_dir)
- for func in func_scripts:
- script = func(build_dir)
- if not script:
- continue
- if is_string(script):
- log.info(" adding '%s' to scripts" % (script,))
- new_scripts.append(script)
- else:
- [log.info(" adding '%s' to scripts" % (s,)) for s in script]
- new_scripts.extend(list(script))
- return new_scripts
- def run (self):
- if not self.scripts:
- return
- self.scripts = self.generate_scripts(self.scripts)
- # Now make sure that the distribution object has this list of scripts.
- # setuptools' develop command requires that this be a list of filenames,
- # not functions.
- self.distribution.scripts = self.scripts
- return old_build_scripts.run(self)
- def get_source_files(self):
- from numpy.distutils.misc_util import get_script_files
- return get_script_files(self.scripts)
|