checks for freetype

Hi Michael,

I just tried building mpl from svn at work for the first time since
your changes, and wanted to let you know about a use case that isn't
convered by your checks. We build mpl by passing in -I and other
args, eg in a Makefile:

  cd ${SRCDIR}/matplotlib/matplotlib; CC=${CC} CXX=${CXX}
PKG_CONFIG_PATH=${PKG_CONFIG_PATH}
PYTHONPATH=${INSTALL_LOCAL}:/opt/app/g++lib6/python-2.4/lib/python2.4/site-packages/3rdParty/gtk-2.6
python setup.py build_ext -I
/opt/app/gnome-2.6/include:/opt/app/libpng/include:/opt/app/freetype-2.1.10/include:/opt/app/freetype-2.1.10/include/freetype2
    -L /opt/app/gnome-2.6/lib:/opt/app/libpng/lib:/opt/app/freetype-2.1.10/lib
    -R /opt/app/gnome-2.6/lib:/opt/app/freetype-2.1.10/lib:/opt/app/libpng/lib
build

and your freetype include checker is not finding ft2build.h and
failing, although the build process finds it. I can simply comment
out the return False in the include file checker and get the thing to
build, but I wonder if we can handle this case, or if not perhaps we
should simply warn but not fail.

Also, in the libpng check, I think you put the comma join in the wrong
place. Did you mean

        print_message(
            "Could not find 'libpng' headers in any of %s" %
            ', '.join(["'%s'" % x for x in module.include_dirs]))

John Hunter wrote:

Hi Michael,

I just tried building mpl from svn at work for the first time since
your changes, and wanted to let you know about a use case that isn't
convered by your checks. We build mpl by passing in -I and other
args, eg in a Makefile:

  cd \{SRCDIR\}/matplotlib/matplotlib; CC={CC} CXX=\{CXX\} PKG\_CONFIG\_PATH={PKG_CONFIG_PATH}
PYTHONPATH=${INSTALL_LOCAL}:/opt/app/g++lib6/python-2.4/lib/python2.4/site-packages/3rdParty/gtk-2.6
python setup.py build_ext -I
/opt/app/gnome-2.6/include:/opt/app/libpng/include:/opt/app/freetype-2.1.10/include:/opt/app/freetype-2.1.10/include/freetype2
    -L /opt/app/gnome-2.6/lib:/opt/app/libpng/lib:/opt/app/freetype-2.1.10/lib
    -R /opt/app/gnome-2.6/lib:/opt/app/freetype-2.1.10/lib:/opt/app/libpng/lib
build
and your freetype include checker is not finding ft2build.h and
failing, although the build process finds it. I can simply comment
out the return False in the include file checker and get the thing to
build, but I wonder if we can handle this case, or if not perhaps we
should simply warn but not fail.

Ah, I see. Yes, I'll turn the check into a warning. My main motivation was to make it more obvious why the build was failing when freetype couldn't be found (and to use pkg-config to look for freetype2 when possible). But you're right, you can't cover all the cases that way.

Also, in the libpng check, I think you put the comma join in the wrong
place. Did you mean

        print_message(
            "Could not find 'libpng' headers in any of %s" %
            ', '.join(["'%s'" % x for x in module.include_dirs]))

Yes, thanks.

Cheers,
Mike