'runtime_library_dirs': transitive_list,
'include_dirs': transitive_list,
'extra_objects': list,
- 'extra_compile_args': list,
- 'extra_link_args': list,
+ 'extra_compile_args': transitive_list,
+ 'extra_link_args': transitive_list,
'export_symbols': list,
'depends': transitive_list,
'language': transitive_str,
elif exn is not None:
for key in distutils_settings:
if key in ('name', 'sources'):
- pass
+ continue
value = getattr(exn, key, None)
if value:
self.values[key] = value
else:
module_name = name
if module_name not in seen:
+ kwds = deps.distutils_info(file, aliases, base).values
+ for key, value in base.values.items():
+ if key not in kwds:
+ kwds[key] = value
module_list.append(exn_type(
name=module_name,
sources=[file],
- **deps.distutils_info(file, aliases, base).values))
+ **kwds))
+ m = module_list[-1]
seen.add(name)
return module_list
get_type=unsafe_type,
lib_dir=os.path.expanduser('~/.cython/inline'),
cython_include_dirs=['.'],
+ force=False,
locals=None,
globals=None,
**kwds):
os.makedirs(lib_dir)
if lib_dir not in sys.path:
sys.path.append(lib_dir)
- __import__(module_name)
+ if force:
+ raise ImportError
+ else:
+ __import__(module_name)
except ImportError:
+ cflags = []
c_include_dirs = []
cimports = []
qualified = re.compile(r'([.\w]+)[.]')
if m.groups()[0] == 'numpy':
import numpy
c_include_dirs.append(numpy.get_include())
+ cflags.append('-Wno-unused')
module_body, func_body = extract_func_code(code)
params = ', '.join(['%s %s' % a for a in arg_sigs])
module_code = """
extension = Extension(
name = module_name,
sources = [pyx_file],
- include_dirs = c_include_dirs)
+ include_dirs = c_include_dirs,
+ extra_compile_args = cflags)
build_extension = build_ext(Distribution())
build_extension.finalize_options()
build_extension.extensions = cythonize([extension], ctx=ctx)