def extension_modules():
import numpy as np
libraries, library_dirs = BuildFortranThenExt.get_library_dirs()
extensions = []
for name, dependencies in FORTRAN_MODULES.items():
if name in ('types', 'status'): # No speedup.
continue
mod_name = 'bezier._{}_speedup'.format(name)
path = SPEEDUP_FILENAME.format(name)
if BuildFortranThenExt.USE_SHARED_LIBRARY:
# Here we don't depend on object files since the functionality
# is contained in the shared library.
extra_objects = []
else:
# NOTE: These may be treated as relative paths and replaced
# before the extension is actually built.
extra_objects = [
OBJECT_FILENAME.format(dependency)
for dependency in dependencies
]
# NOTE: Copy ``libraries`` and ``library_dirs`` so they
# aren't shared (and mutable) between extensions.
extension = setuptools.Extension(
mod_name,
[path],
extra_objects=extra_objects,
include_dirs=[
np.get_include(),
os.path.join('src', 'bezier', 'include'),
],
libraries=copy.deepcopy(libraries),
library_dirs=copy.deepcopy(library_dirs),
)
extensions.append(extension)
return extensions
评论列表
文章目录