these are coming from fontTools.ufoLib, they have been fixed already in later versions of fonttools, but here we are conservatively testing with an older version
When collecting a glyph's segments, we can't simply call the glyphs' draw
method with the GetSegmentsPen, but we must initialize the
PointToSegmentPen explicitly with outputImpliedClosingLine=True.
By default PointToSegmentPen does not outputImpliedClosingLine -- unless
last and first point on closed contour are duplicated.
Because we are converting multiple glyphs at the same time, we want to
make sure the _get_segments function returns the same number of segments,
whether or not the last and first point overlap.
Fixes https://github.com/googlefonts/fontmake/issues/572
Also see: https://github.com/fonttools/fonttools/pull/1720
else pip >= 19 doesn't see cython even if it's installed outside the isolated build environment.
One can use --no-build-isolation to prevent that.
https://github.com/pypa/pip/issues/6144
Bot not happy. Not happy bot not good.
This reverts commit 7e130ea438875b3a32564fe02adfd60286b3eed0.
This reverts commit 3486a3635f35044fe94d722cee788ba5d3a5698a.
One can now use either the $CU2QU_WITH_CYTHON environment variable
or the --with/without-cython command line options to setup.py.
The --without-cython is for when one wants to get a pure, universal
wheel despite having both cython and a C compiler installed.
By default (when no env var nor command line options are used),
building from source will attempt to compile the extension module
using the pre-generated *.c source files that are always included
in the sdist package that we (will) upload to PyPI.
If the compilation fails (e.g. the user doesn't have a C compiler),
then an error message will be printed but installation will proceed
without the optional native extension.
When cloning a fresh repo, the *.c sources will not be present, so
to build the extension from local checkout one always needs Cython
installed.
When $CU2QU_WITH_CYTHON is true (1, or yes), then cython is required
and installation will abort if any error occurs during building.