def Extension(name, source=None, can_use_openmp=False, extra_sources=None, **kwargs): """ Wrapper for distutils' Extension """ if source is None: source = name cython_c_ext = ".pyx" if USE_CYTHON else ".c" sources = [os.path.join("src", source + cython_c_ext)] if extra_sources: sources.extend(extra_sources) if "include_dirs" in kwargs: include_dirs = set(kwargs.pop("include_dirs")) include_dirs.add(numpy.get_include()) include_dirs.add("src") include_dirs = list(include_dirs) else: include_dirs = ["src", numpy.get_include()] if can_use_openmp and USE_OPENMP: extra_compile_args = set(kwargs.pop("extra_compile_args", [])) extra_compile_args.add(USE_OPENMP) kwargs["extra_compile_args"] = list(extra_compile_args) extra_link_args = set(kwargs.pop("extra_link_args", [])) extra_link_args.add(USE_OPENMP) kwargs["extra_link_args"] = list(extra_link_args) ext = _Extension(name=name, sources=sources, include_dirs=include_dirs, **kwargs) if USE_CYTHON: cext = cythonize([ext], compile_time_env={"HAVE_OPENMP": bool(USE_OPENMP)}) if cext: ext = cext[0] return ext
def Extension(name, source=None, extra_sources=None, **kwargs): """ Wrapper for distutils' Extension """ if source is None: source = name cython_c_ext = ".pyx" if CYTHON else ".c" sources = [os.path.join("src", source + cython_c_ext)] if extra_sources: sources.extend(extra_sources) return _Extension(name=name, sources=sources, **kwargs)
def Extension(name, source=None, can_use_openmp=False, extra_sources=None, **kwargs): """ Wrapper for distutils' Extension """ if name.startswith(PROJECT + ".ext."): name = name[len(PROJECT) + 5:] if source is None: source = name cython_c_ext = ".pyx" if USE_CYTHON else ".c" sources = [os.path.join(PROJECT, "ext", source + cython_c_ext)] if extra_sources: sources.extend(extra_sources) if "include_dirs" in kwargs: include_dirs = set(kwargs.pop("include_dirs")) include_dirs.add(numpy.get_include()) include_dirs.add(os.path.join(PROJECT, "ext")) include_dirs.add(os.path.join(PROJECT, "ext", "include")) include_dirs = list(include_dirs) else: include_dirs = [ os.path.join(PROJECT, "ext", "include"), os.path.join(PROJECT, "ext"), numpy.get_include() ] if can_use_openmp and USE_OPENMP: extra_compile_args = set(kwargs.pop("extra_compile_args", [])) extra_compile_args.add(USE_OPENMP) kwargs["extra_compile_args"] = list(extra_compile_args) extra_link_args = set(kwargs.pop("extra_link_args", [])) extra_link_args.add(USE_OPENMP) kwargs["extra_link_args"] = list(extra_link_args) ext = _Extension(name=PROJECT + ".ext." + name, sources=sources, include_dirs=include_dirs, **kwargs) if USE_CYTHON: cext = cythonize([ext], compile_time_env={"HAVE_OPENMP": bool(USE_OPENMP)}) if cext: ext = cext[0] return ext
def Extension(name, source=None, extra_sources=None, **kwargs): """ Wrapper for distutils' Extension """ if source is None: source = name cython_c_ext = ".pyx" if CYTHON else ".c" sources = [os.path.join("src", source + cython_c_ext)] if extra_sources: sources.extend(extra_sources) if "include_dirs" in kwargs: include_dirs = set(kwargs.pop("include_dirs")) include_dirs.add(numpy.get_include()) include_dirs.add("src") include_dirs = list(include_dirs) else: include_dirs = ["src", numpy.get_include()] return _Extension(name=name, sources=sources, include_dirs=include_dirs, **kwargs)
def Extension(name, source=None, can_use_openmp=False, extra_sources=None, **kwargs): """ Wrapper for distutils' Extension """ if name.startswith(PROJECT + ".ext."): name = name[len(PROJECT) + 5:] if source is None: source = name cython_c_ext = ".pyx" if USE_CYTHON else ".c" sources = [os.path.join(PROJECT, "ext", source + cython_c_ext)] if extra_sources: sources.extend(extra_sources) if "include_dirs" in kwargs: include_dirs = set(kwargs.pop("include_dirs")) include_dirs.add(numpy.get_include()) include_dirs.add(os.path.join(PROJECT, "ext")) include_dirs.add(os.path.join(PROJECT, "ext", "include")) include_dirs = list(include_dirs) else: include_dirs = [os.path.join(PROJECT, "ext", "include"), os.path.join(PROJECT, "ext"), numpy.get_include()] if can_use_openmp and USE_OPENMP: openmp_arg = "openmp" if USE_OPENMP else "" extra_compile_args = set(kwargs.pop("extra_compile_args", [])) extra_compile_args.add(openmp_arg) kwargs["extra_compile_args"] = list(extra_compile_args) extra_link_args = set(kwargs.pop("extra_link_args", [])) extra_link_args.add(openmp_arg) kwargs["extra_link_args"] = list(extra_link_args) ext = _Extension(name=PROJECT + ".ext." + name, sources=sources, include_dirs=include_dirs, **kwargs) if USE_CYTHON: cext = cythonize([ext], compiler_directives={'embedsignature': True}, force=(os.environ.get("FORCE_CYTHON") is "True"), compile_time_env={"HAVE_OPENMP": USE_OPENMP}) if cext: ext = cext[0] return ext