54 lines
1.1 KiB
Python
54 lines
1.1 KiB
Python
import os
|
|
import sys
|
|
|
|
from Cython.Build import cythonize
|
|
from Cython.Compiler import Options
|
|
from setuptools import setup
|
|
|
|
Options.docstrings = False
|
|
Options.embed_pos_in_docstring = False
|
|
Options.annotate = False
|
|
Options.fast_fail = True
|
|
|
|
DEBUG = bool(os.getenv("DOPT_DEBUG", None))
|
|
|
|
linetrace_opt: bool = False
|
|
if DEBUG:
|
|
linetrace_opt = True
|
|
|
|
ext_modules = cythonize(
|
|
[""], # !! add Cython modules here
|
|
compiler_directives={
|
|
"language_level": 3,
|
|
"boundscheck": False,
|
|
"wraparound": False,
|
|
"embedsignature": False,
|
|
"annotation_typing": True,
|
|
"linetrace": linetrace_opt,
|
|
},
|
|
)
|
|
|
|
|
|
if DEBUG:
|
|
ext_modules[0].define_macros.append(("CYTHON_TRACE", "1"))
|
|
|
|
compiler_args: list[str] = []
|
|
linker_args: list[str] = []
|
|
|
|
|
|
if sys.platform.startswith("win") and not DEBUG:
|
|
c_args = ("/O2", "/GL", "/Gy")
|
|
l_args = ("/LTCG", "/OPT:REF", "/OPT:ICF")
|
|
else:
|
|
c_args = tuple()
|
|
l_args = tuple()
|
|
|
|
compiler_args.extend(c_args)
|
|
linker_args.extend(l_args)
|
|
|
|
for ext in ext_modules:
|
|
ext.extra_compile_args.extend(compiler_args)
|
|
ext.extra_link_args.extend(linker_args)
|
|
|
|
setup(ext_modules=ext_modules)
|