Before, Cython would *need* to be imported immediately if generated
files did not already exist. Now, missing generated files will trigger a
`setup_requires` inclusion of Cython and defer cythonization until
extension build-time. If cythonization was specified via environment
variable and setup could not find Cython, the extensions are poisoned
instead of blocking non-extension commands from running.
Before we patched the link command, now we just patch `spawn` as an
updatable catch-all solution to ARG_MAX limitations on bash for MSYS and
MinGW and friends.
Removes MinGW flags from various build scripts, since they're now set in
our `setup.py`s by default. Also removes the arguments for the
extensions in grpcio's setup.py; that function was already accessing
globals anyway, might as well go whole-hog.
Before we patched the link command, now we just patch `spawn` as an
updatable catch-all solution to ARG_MAX limitations on bash for MSYS and
MinGW and friends.
Even if GRPC_PYTHON_BUILD_WITH_CYTHON is not specified, if the files are
not present then we will fall back to generating with Cython. This
relegates GRPC_PYTHON_BUILD_WITH_CYTHON to providing a regeneration
option rather than being a necessary build environment variable.
Turns out that Python namespace packages may be asymmetrical. The contents of a
particular package that was installed first (here grpcio) appears to retain its
contents in the installation directory when all other distributions declare
that package as a namespace package (here grpcio-tools).
Notable Changes:
-Convert all str types to byte types at cython layer (ascii encoding)
-Use six for packages that have different names in Python2/Python3
-By default, unit tests are compiled/run in Python2.7 and Python3.4
-Ensure MACOSX_BUILD_TARGET is at least 10.7