_backend.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from __future__ import annotations
  2. from abc import ABC, abstractmethod
  3. class Backend(ABC):
  4. def __init__(
  5. self,
  6. modulename,
  7. sources,
  8. extra_objects,
  9. build_dir,
  10. include_dirs,
  11. library_dirs,
  12. libraries,
  13. define_macros,
  14. undef_macros,
  15. f2py_flags,
  16. sysinfo_flags,
  17. fc_flags,
  18. flib_flags,
  19. setup_flags,
  20. remove_build_dir,
  21. extra_dat,
  22. ):
  23. self.modulename = modulename
  24. self.sources = sources
  25. self.extra_objects = extra_objects
  26. self.build_dir = build_dir
  27. self.include_dirs = include_dirs
  28. self.library_dirs = library_dirs
  29. self.libraries = libraries
  30. self.define_macros = define_macros
  31. self.undef_macros = undef_macros
  32. self.f2py_flags = f2py_flags
  33. self.sysinfo_flags = sysinfo_flags
  34. self.fc_flags = fc_flags
  35. self.flib_flags = flib_flags
  36. self.setup_flags = setup_flags
  37. self.remove_build_dir = remove_build_dir
  38. self.extra_dat = extra_dat
  39. @abstractmethod
  40. def compile(self) -> None:
  41. """Compile the wrapper."""
  42. pass