Remakes Build Process and Dependency Management
This commit is contained in:
41
build.py
Normal file
41
build.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import os
|
||||
import numpy
|
||||
|
||||
|
||||
try:
|
||||
from Cython.Build import cythonize
|
||||
except ImportError:
|
||||
def build(setup_kwargs):
|
||||
pass
|
||||
else:
|
||||
from setuptools import Extension
|
||||
from setuptools.dist import Distribution
|
||||
from setuptools.command.build_ext import build_ext
|
||||
|
||||
|
||||
def build_ext_modules_array(ext: list[dict]) -> list[Extension]:
|
||||
return [
|
||||
Extension(
|
||||
name=e['name'],
|
||||
sources=[e['path']],
|
||||
extra_compile_args=['-O3', '-fopenmp'],
|
||||
extra_link_args=['-fopenmp'],
|
||||
language='c',
|
||||
) for e in ext
|
||||
]
|
||||
|
||||
def build(setup_kwargs):
|
||||
extensions = [
|
||||
{"name": "yoshi_seals.shared.array", "path": "yoshi_seals/shared/array.pyx"},
|
||||
{"name": "yoshi_seals.process.process", "path": "yoshi_seals/process/process.pyx"},
|
||||
]
|
||||
|
||||
setup_kwargs.update({
|
||||
'ext_modules': cythonize(
|
||||
build_ext_modules_array(extensions),
|
||||
language_level=3,
|
||||
compiler_directives={'linetrace': True},
|
||||
),
|
||||
'include_dirs': [numpy.get_include()],
|
||||
'cmdclass': {'build_ext': build_ext}
|
||||
})
|
||||
Reference in New Issue
Block a user