Commit e5a2a7bd authored by Stefan Behnel's avatar Stefan Behnel

extract FQ module name from distutils

parent 2026e80b
......@@ -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)
#------------------------------------------------------------------------
#
......
......@@ -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)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment