def run(self): if self.distribution.subpackages != None: if self.get_finalized_command('install').ran: return ## avoid build after install try: os.makedirs(self.build_base) except: pass for idx in range(len(sys.argv)): if 'setup.py' in sys.argv[idx]: break argv = list(sys.argv[idx+1:]) if 'install' in argv: argv.remove('install') if 'clean' in argv: argv.remove('clean') process_subpackages(self.distribution.parallel_build, 'build', self.build_base, self.distribution.subpackages, argv, self.distribution.quit_on_error) if self.has_pure_modules() or self.has_c_libraries() or \ self.has_ext_modules() or self.has_shared_libraries() or \ self.has_pypp_extensions() or self.has_web_extensions() or \ self.has_documents() or self.has_executables() or \ self.has_scripts() or self.has_data(): old_build.run(self) else: old_build.run(self)
def run(self): # Remove .pyc, .lreg and .sibling files if hasattr(os, "walk"): for root, dirs, files in os.walk("."): for f in files: if f.endswith(".pyc") or f.endswith(".lreg") or f.endswith(".sibling"): try: os.unlink(f) except: pass # Remove generated directories build = self.get_finalized_command("build") build_dir = build.build_base if os.path.exists(build_dir): try: shutil.rmtree(build_dir, ignore_errors=True) except: pass if self.distribution.subpackages != None: for idx in range(len(sys.argv)): if "setup.py" in sys.argv[idx]: break argv = list(sys.argv[idx + 1 :]) process_subpackages( build.distribution.parallel_build, "clean", build.build_base, self.distribution.subpackages, argv, False ) # Remove user-specified generated files if self.distribution.generated_files != None: for path in self.distribution.generated_files: if os.path.isfile(path) or os.path.islink(path): try: os.unlink(path) except: pass elif os.path.isdir(path): try: shutil.rmtree(path, ignore_errors=True) except: pass old_clean.run(self) util.delete_cache()
def run(self): failed = False if self.distribution.subpackages != None: for idx in range(len(sys.argv)): if 'setup.py' in sys.argv[idx]: break argv = list(sys.argv[idx+1:]) build = self.get_finalized_command('build') failed = process_subpackages(build.distribution.parallel_build, 'test', build.build_base, self.distribution.subpackages, argv, False) ## PYTHON if self._has_python_tests(): self.run_command('build') build = self.get_finalized_command('build') build_dir = build.build_base environ = self.distribution.environment pkg_dirs = [build_dir, build.build_lib, os.path.join(build_dir, 'python')] lib_dirs = [build.build_temp] try: lib_dirs += environ['PATH'] # FIXME need boost, etc dlls for windows except: pass try: lib_dirs.append(os.path.join(environ['MINGW_DIR'], 'bin')) lib_dirs.append(os.path.join(environ['MSYS_DIR'], 'bin')) lib_dirs.append(os.path.join(environ['MSYS_DIR'], 'lib')) except: pass postfix = '.'.join(build.build_temp.split('.')[1:]) for pkg, units in self._get_python_tests(): test_dir = os.path.join(build_dir, 'test_' + pkg) if not os.path.exists(test_dir): util.copy_tree('test', test_dir, excludes=['.svn*', 'CVS*']) f = open(os.path.join(test_dir, '__init__.py'), 'w') f.write("__all__ = ['" + "', '".join(units) + "']\n") f.close() outfile = os.path.join(build_dir, 'test_' + pkg + '.py') util.create_testscript('test_' + pkg, units, outfile, pkg_dirs) wrap = util.create_test_wrapper(outfile, build_dir, lib_dirs) log.info('Python unit tests for ' + pkg) try: util.check_call([wrap]) except Exception, e: failed = True print e