From 73368ff53503a40dadac4e7ea7bf97253cf56a01 Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Fri, 9 Apr 2010 06:51:14 +0200 Subject: [PATCH] support profiling of Cython binary modules when passing --cython-profile to setup.py --- setup.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 2b234913..bdc54033 100644 --- a/setup.py +++ b/setup.py @@ -85,7 +85,7 @@ else: else: scripts = ["cython.py"] -def compile_cython_modules(): +def compile_cython_modules(profile=False): source_root = os.path.abspath(os.path.dirname(__file__)) compiled_modules = ["Cython.Plex.Scanners", "Cython.Compiler.Scanning", @@ -116,6 +116,10 @@ def compile_cython_modules(): del sys.modules[module] sys.path.insert(0, os.path.join(source_root, self.build_lib)) + if profile: + from Cython.Compiler.Options import directive_defaults + directive_defaults['profile'] = True + print("Enabled profiling for the Cython binary modules") build_ext_orig.build_extensions(self) setup_args['ext_modules'] = extensions @@ -132,6 +136,10 @@ def compile_cython_modules(): print("Compilation of '%s' failed" % ext.sources[0]) from Cython.Compiler.Main import compile from Cython import Utils + if profile: + from Cython.Compiler.Options import directive_defaults + directive_defaults['profile'] = True + print("Enabled profiling for the Cython binary modules") source_root = os.path.dirname(__file__) for module in compiled_modules: source_file = os.path.join(source_root, *module.split('.')) @@ -162,7 +170,10 @@ def compile_cython_modules(): try: sys.argv.remove("--no-cython-compile") except ValueError: - compile_cython_modules() + cython_profile = '--cython-profile' in sys.argv + if cython_profile: + sys.argv.remove('--cython-profile') + compile_cython_modules(cython_profile) setup_args.update(setuptools_extra_args) -- 2.26.2