build.py 1.3 KB

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