Remakes Build Process and Dependency Management

This commit is contained in:
2024-06-24 00:28:57 -03:00
parent 5039a7f3ac
commit 9fbb8da6bf
12 changed files with 395 additions and 686 deletions

41
build.py Normal file
View 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}
})