EXT_MODULES.remove(WAITER) _to_cythonize.remove(WAITER) EXT_MODULES.remove(GLT_PRIMITIVES) _to_cythonize.remove(GLT_PRIMITIVES) EXT_MODULES.remove(HUB_PRIMITIVES) _to_cythonize.remove(HUB_PRIMITIVES) EXT_MODULES.remove(TRACER) _to_cythonize.remove(TRACER) for mod in _to_cythonize: EXT_MODULES.remove(mod) EXT_MODULES.append(cythonize1(mod)) del _to_cythonize if IGNORE_CFFI and not PYPY: # Allow distributors to turn off CFFI builds # even if it's available, because CFFI always embeds # our copy of libev/libuv and they may not want that. del cffi_modules[:] # If we are running info / help commands, or we're being imported by # tools like pyroma, we don't need to build anything _BUILDING = True if ((len(sys.argv) >= 2 and ('--help' in sys.argv[1:] or sys.argv[1] in ('--help-commands', 'egg_info', '--version', 'clean', '--long-description'))) or __name__ != '__main__'):
'src/gevent/libev/corecext.pyx', 'src/gevent/libev/callbacks.c', ], include_dirs=['src/gevent/libev'] + [dep_abspath('libev')] if LIBEV_EMBED else [], libraries=list(LIBRARIES), define_macros=list(DEFINE_MACROS), depends=glob_many('src/gevent/libev/callbacks.*', 'src/gevent/libev/stathelper.c', 'src/gevent/libev/libev*.h', 'deps/libev/*.[ch]')) if WIN: CORE.define_macros.append(('EV_STANDALONE', '1')) # QQQ libev can also use -lm, however it seems to be added implicitly if LIBEV_EMBED: CORE.define_macros += [('LIBEV_EMBED', '1'), ('EV_COMMON', ''), # we don't use void* data # libev watchers that we don't use currently: ('EV_CLEANUP_ENABLE', '0'), ('EV_EMBED_ENABLE', '0'), ("EV_PERIODIC_ENABLE", '0')] CORE.configure = configure_libev if sys.platform == "darwin": os.environ["CPPFLAGS"] = ("%s %s" % (os.environ.get("CPPFLAGS", ""), "-U__llvm__")).lstrip() if os.environ.get('GEVENTSETUP_EV_VERIFY') is not None: CORE.define_macros.append(('EV_VERIFY', os.environ['GEVENTSETUP_EV_VERIFY'])) else: CORE.libraries.append('ev') CORE = cythonize1(CORE)
ares_required = RUNNING_ON_CI and RUNNING_FROM_CHECKOUT ARES.optional = not ares_required if CARES_EMBED: ARES.sources += glob_many('deps/c-ares/*.c') # Strip the standalone binaries that would otherwise # cause linking issues for bin_c in ('acountry', 'adig', 'ahost'): ARES.sources.remove('deps/c-ares' + os.sep + bin_c + '.c') ARES.configure = configure_ares if WIN: ARES.libraries += ['advapi32'] ARES.define_macros += [('CARES_STATICLIB', '')] else: ARES.define_macros += [('HAVE_CONFIG_H', '')] if sys.platform != 'darwin': ARES.libraries += ['rt'] else: # libresolv dependency introduced in # c-ares 1.16.1. ARES.libraries += ['resolv'] ARES.define_macros += [('CARES_EMBED', '1')] else: ARES.libraries.append('cares') ARES.define_macros += [('HAVE_NETDB_H', '')] ARES.configure = lambda bext, ext: print( "c-ares not embedded, not configuring", bext, ext) ARES = cythonize1(ARES)
if not os.environ.get('PYTHON_EXE'): os.environ['PYTHON_EXE'] = 'pypy' if PYPY else 'python' if not os.environ.get('PYEXE'): os.environ['PYEXE'] = os.environ['PYTHON_EXE'] if PYPY and sys.pypy_version_info[:3] < (2, 6, 1): # pylint:disable=no-member # We have to have CFFI >= 1.3.0, and this platform cannot upgrade # it. raise Exception("PyPy >= 2.6.1 is required") __version__ = read_version() from _setuplibev import build_extension as build_libev_extension from _setupares import ARES CORE = cythonize1(build_libev_extension()) # Get access to the greenlet header file. SEMAPHORE = Extension(name="gevent.__semaphore", sources=["src/gevent/_semaphore.py"], depends=['src/gevent/__semaphore.pxd'], include_dirs=get_include_dirs()) LOCAL = Extension(name="gevent._local", sources=["src/gevent/local.py"], depends=['src/gevent/_local.pxd'], include_dirs=get_include_dirs()) GREENLET = Extension(name="gevent._greenlet", sources=[
# We have to have CFFI >= 1.3.0, and this platform cannot upgrade # it. raise Exception("PyPy >= 2.6.1 is required") __version__ = read_version() from _setuplibev import libev_configure_command from _setuplibev import LIBEV_EMBED from _setuplibev import CORE from _setupares import ARES SEMAPHORE = Extension(name="gevent._semaphore", sources=["src/gevent/_semaphore.py"], depends=['src/gevent/_semaphore.pxd']) SEMAPHORE = cythonize1(SEMAPHORE) LOCAL = Extension(name="gevent.local", sources=["src/gevent/local.py"], depends=['src/gevent/local.pxd']) LOCAL = cythonize1(LOCAL) EXT_MODULES = [ CORE, ARES, SEMAPHORE, LOCAL, ] LIBEV_CFFI_MODULE = 'src/gevent/libev/_corecffi_build.py:ffi' LIBUV_CFFI_MODULE = 'src/gevent/libuv/_corecffi_build.py:ffi'
libraries=list(LIBRARIES), define_macros=list(DEFINE_MACROS), depends=glob_many('src/gevent/resolver/dnshelper.c', 'src/gevent/resolver/cares_*.[ch]')) ares_required = RUNNING_ON_CI and RUNNING_FROM_CHECKOUT ARES.optional = not ares_required if CARES_EMBED: ARES.sources += glob_many('deps/c-ares/*.c') # Strip the standalone binaries that would otherwise # cause linking issues for bin_c in ('acountry', 'adig', 'ahost'): ARES.sources.remove('deps/c-ares' + os.sep + bin_c + '.c') ARES.configure = configure_ares if WIN: ARES.libraries += ['advapi32'] ARES.define_macros += [('CARES_STATICLIB', '')] else: ARES.define_macros += [('HAVE_CONFIG_H', '')] if sys.platform != 'darwin': ARES.libraries += ['rt'] ARES.define_macros += [('CARES_EMBED', '1')] else: ARES.libraries.append('cares') ARES.define_macros += [('HAVE_NETDB_H', '')] ARES.configure = lambda bext, ext: print("c-ares not embedded, not configuring", bext, ext) ARES = cythonize1(ARES)
if PYPY and sys.pypy_version_info[:3] < (2, 6, 1): # pylint:disable=no-member # We have to have CFFI >= 1.3.0, and this platform cannot upgrade # it. raise Exception("PyPy >= 2.6.1 is required") __version__ = read_version() from _setuplibev import build_extension as build_libev_extension from _setupares import ARES CORE = cythonize1(build_libev_extension()) # Get access to the greenlet header file. # The sysconfig dir is not enough if we're in a virtualenv # See https://github.com/pypa/pip/issues/4610 include_dirs = [sysconfig.get_path("include")] venv_include_dir = os.path.join(sys.prefix, 'include', 'site', 'python' + sysconfig.get_python_version()) venv_include_dir = os.path.abspath(venv_include_dir) if os.path.exists(venv_include_dir): include_dirs.append(venv_include_dir) # If we're installed via buildout, and buildout also installs # greenlet, we have *NO* access to greenlet.h at all. So include # our own copy as a fallback. include_dirs.append('deps')