build.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from __future__ import division, absolute_import, print_function
  2. import os
  3. import sys
  4. from distutils.command.build import build as old_build
  5. from distutils.util import get_platform
  6. from numpy.distutils.command.config_compiler import show_fortran_compilers
  7. class build(old_build):
  8. sub_commands = [('config_cc', lambda *args: True),
  9. ('config_fc', lambda *args: True),
  10. ('build_src', old_build.has_ext_modules),
  11. ] + old_build.sub_commands
  12. user_options = old_build.user_options + [
  13. ('fcompiler=', None,
  14. "specify the Fortran compiler type"),
  15. ('warn-error', None,
  16. "turn all warnings into errors (-Werror)"),
  17. ]
  18. help_options = old_build.help_options + [
  19. ('help-fcompiler', None, "list available Fortran compilers",
  20. show_fortran_compilers),
  21. ]
  22. def initialize_options(self):
  23. old_build.initialize_options(self)
  24. self.fcompiler = None
  25. self.warn_error = False
  26. def finalize_options(self):
  27. build_scripts = self.build_scripts
  28. old_build.finalize_options(self)
  29. plat_specifier = ".{}-{}.{}".format(get_platform(), *sys.version_info[:2])
  30. if build_scripts is None:
  31. self.build_scripts = os.path.join(self.build_base,
  32. 'scripts' + plat_specifier)
  33. def run(self):
  34. old_build.run(self)