| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import os
- import shutil
- import sys
- import warnings
- from numpy.distutils.core import Extension, setup
- from numpy.distutils.misc_util import dict_append
- from numpy.distutils.system_info import get_info
- from numpy.exceptions import VisibleDeprecationWarning
- from ._backend import Backend
- class DistutilsBackend(Backend):
- def __init__(sef, *args, **kwargs):
- warnings.warn(
- "\ndistutils has been deprecated since NumPy 1.26.x\n"
- "Use the Meson backend instead, or generate wrappers"
- " without -c and use a custom build script",
- VisibleDeprecationWarning,
- stacklevel=2,
- )
- super().__init__(*args, **kwargs)
- def compile(self):
- num_info = {}
- if num_info:
- self.include_dirs.extend(num_info.get("include_dirs", []))
- ext_args = {
- "name": self.modulename,
- "sources": self.sources,
- "include_dirs": self.include_dirs,
- "library_dirs": self.library_dirs,
- "libraries": self.libraries,
- "define_macros": self.define_macros,
- "undef_macros": self.undef_macros,
- "extra_objects": self.extra_objects,
- "f2py_options": self.f2py_flags,
- }
- if self.sysinfo_flags:
- for n in self.sysinfo_flags:
- i = get_info(n)
- if not i:
- print(
- f"No {n!r} resources found"
- "in system (try `f2py --help-link`)"
- )
- dict_append(ext_args, **i)
- ext = Extension(**ext_args)
- sys.argv = [sys.argv[0]] + self.setup_flags
- sys.argv.extend(
- [
- "build",
- "--build-temp",
- self.build_dir,
- "--build-base",
- self.build_dir,
- "--build-platlib",
- ".",
- "--disable-optimization",
- ]
- )
- if self.fc_flags:
- sys.argv.extend(["config_fc"] + self.fc_flags)
- if self.flib_flags:
- sys.argv.extend(["build_ext"] + self.flib_flags)
- setup(ext_modules=[ext])
- if self.remove_build_dir and os.path.exists(self.build_dir):
- print(f"Removing build directory {self.build_dir}")
- shutil.rmtree(self.build_dir)
|