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:
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)
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)
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)
#------------------------------------------------------------------------
#
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')]
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)