else:
scripts = ["cython.py"]
-def compile_cython_modules(profile=False):
+def compile_cython_modules(profile=False, compile_more=False, cython_with_refnanny=False):
source_root = os.path.abspath(os.path.dirname(__file__))
compiled_modules = ["Cython.Plex.Scanners",
"Cython.Plex.Actions",
+ "Cython.Compiler.Lexicon",
"Cython.Compiler.Scanning",
"Cython.Compiler.Parsing",
"Cython.Compiler.Visitor",
- #"Cython.Compiler.ParseTreeTransforms",
- #"Cython.Compiler.Nodes",
- #"Cython.Compiler.ExprNodes",
- #"Cython.Compiler.ModuleNode",
- #"Cython.Compiler.Optimize",
+ "Cython.Compiler.Code",
"Cython.Runtime.refnanny"]
- extensions = []
+ if compile_more:
+ compiled_modules.extend([
+ "Cython.Compiler.ParseTreeTransforms",
+ "Cython.Compiler.Nodes",
+ "Cython.Compiler.ExprNodes",
+ "Cython.Compiler.ModuleNode",
+ "Cython.Compiler.Optimize",
+ ])
+
+ defines = []
+ if cython_with_refnanny:
+ defines.append(('CYTHON_REFNANNY', '1'))
+ extensions = []
if sys.version_info[0] >= 3:
from Cython.Distutils import build_ext as build_ext_orig
for module in compiled_modules:
dep_files = []
if os.path.exists(source_file + '.pxd'):
dep_files.append(source_file + '.pxd')
+ if '.refnanny' in module:
+ defines_for_module = []
+ else:
+ defines_for_module = defines
extensions.append(
Extension(module, sources = [pyx_source_file],
+ define_macros = defines_for_module,
depends = dep_files)
)
if filename_encoding is None:
filename_encoding = sys.getdefaultencoding()
c_source_file = c_source_file.encode(filename_encoding)
+ if '.refnanny' in module:
+ defines_for_module = []
+ else:
+ defines_for_module = defines
extensions.append(
- Extension(module, sources = [c_source_file])
+ Extension(module, sources = [c_source_file],
+ define_macros = defines_for_module)
)
else:
print("Compilation failed")
if cython_profile:
sys.argv.remove('--cython-profile')
+try:
+ sys.argv.remove("--cython-compile-all")
+ cython_compile_more = True
+except ValueError:
+ cython_compile_more = False
+
+try:
+ sys.argv.remove("--cython-with-refnanny")
+ cython_with_refnanny = True
+except ValueError:
+ cython_with_refnanny = False
+
try:
sys.argv.remove("--no-cython-compile")
except ValueError:
- compile_cython_modules(cython_profile)
+ compile_cython_modules(cython_profile, cython_compile_more, cython_with_refnanny)
setup_args.update(setuptools_extra_args)