From e5a2a7bde187594fd512fef2e555f0a1e1524fcf Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Mon, 30 Jul 2007 22:18:23 +0200 Subject: [PATCH] extract FQ module name from distutils --- Cython/Compiler/Main.py | 10 ++++++---- Cython/Distutils/build_ext.py | 12 ++++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Cython/Compiler/Main.py b/Cython/Compiler/Main.py index f665323e..ec705046 100644 --- a/Cython/Compiler/Main.py +++ b/Cython/Compiler/Main.py @@ -153,7 +153,7 @@ class Context: name, _ = os.path.splitext(tail) return name - def compile(self, source, options = None): + def compile(self, source, options = None, full_module_name = None): # Compile a Pyrex implementation file in this context # and return a CompilationResult. if not options: @@ -161,7 +161,8 @@ class Context: result = CompilationResult() cwd = os.getcwd() - full_module_name, _ = os.path.splitext(source.replace('/', '.')) + if full_module_name is None: + full_module_name, _ = os.path.splitext(source.replace('/', '.')) source = os.path.join(cwd, source) @@ -263,7 +264,8 @@ class CompilationResult: self.extension_file = None -def compile(source, options = None, c_compile = 0, c_link = 0): +def compile(source, options = None, c_compile = 0, c_link = 0, + full_module_name = None): """ compile(source, options = default_options) @@ -278,7 +280,7 @@ def compile(source, options = None, c_compile = 0, c_link = 0): if c_link: options.obj_only = 0 context = Context(options.include_path) - return context.compile(source, options) + return context.compile(source, options, full_module_name) #------------------------------------------------------------------------ # diff --git a/Cython/Distutils/build_ext.py b/Cython/Distutils/build_ext.py index bca8b9ff..6b775e7e 100644 --- a/Cython/Distutils/build_ext.py +++ b/Cython/Distutils/build_ext.py @@ -37,8 +37,12 @@ class build_ext (distutils.command.build_ext.build_ext): if not self.extensions: return + if extension is not None: + module_name = extension.name + else: + module_name = None + # collect the names of the source (.pyx) files - pyx_sources = [] pyx_sources = [source for source in sources if source.endswith('.pyx')] other_sources = [source for source in sources if not source.endswith('.pyx')] @@ -50,14 +54,14 @@ class build_ext (distutils.command.build_ext.build_ext): source = pyx target = replace_suffix(source, suffix) if newer(source, target) or self.force: - self.cython_compile(source) + self.cython_compile(source, module_name) return [replace_suffix(src, suffix) for src in pyx_sources] + other_sources - def cython_compile(self, source): + def cython_compile(self, source, module_name): options = CompilationOptions(default_options, include_path = self.include_dirs) - result = compile(source, options) + result = compile(source, options, full_module_name=module_name) if result.num_errors <> 0: sys.exit(1) -- 2.26.2