From 13867f934ccd23e6380046af6f81b66dfaf02a81 Mon Sep 17 00:00:00 2001
From: Varun Hiremath <varun@debian.org>
Date: Sun, 28 Feb 2010 15:16:17 -0500
Subject: Remove freetype2 sources from upstream and use the

 pre-built libfreetype6-dev library in Debian.
Patch-Name: freetype2.diff
---
 kiva/agg/setup.py | 97 ++++---------------------------------------------------
 1 file changed, 6 insertions(+), 91 deletions(-)

diff --git a/kiva/agg/setup.py b/kiva/agg/setup.py
index 5b4d458..c0df584 100644
--- a/kiva/agg/setup.py
+++ b/kiva/agg/setup.py
@@ -4,59 +4,6 @@ import os
 import re
 import platform
 
-freetype2_sources =['autofit/autofit.c',
-                    'base/ftbase.c','base/ftsystem.c','base/ftinit.c',
-                    'base/ftglyph.c','base/ftmm.c','base/ftbdf.c',
-                    'base/ftbbox.c','base/ftdebug.c','base/ftxf86.c',
-                    'base/fttype1.c',
-                    'bdf/bdf.c',
-                    'cff/cff.c',
-                    'cid/type1cid.c',
-                    'lzw/ftlzw.c',
-                    'pcf/pcf.c','pfr/pfr.c',
-                    'psaux/psaux.c',
-                    'pshinter/pshinter.c',
-                    'psnames/psnames.c',
-                    'raster/raster.c',
-                    'sfnt/sfnt.c',
-                    'smooth/smooth.c',
-                    'truetype/truetype.c',
-                    'type1/type1.c',
-                    'type42/type42.c',
-                    'winfonts/winfnt.c',
-                    'gzip/ftgzip.c',
-                    'base/ftmac.c',
-                    ]
-
-freetype2_dirs = [
-    'autofit',
-    'base',
-    'bdf',
-    'cache',
-    'cff',
-    'cid',
-    'gxvalid',
-    'gzip',
-    'lzw',
-    'otvalid',
-    'pcf',
-    'pfr',
-    'psaux',
-    'pshinter',
-    'psnames',
-    'raster',
-    'sfnt',
-    'smooth',
-    'tools',
-    'truetype',
-    'type1',
-    'type42',
-    'winfonts',
-    'gzip'
-    ]
-
-
-
 def configuration(parent_package='', top_path=None):
     from numpy.distutils.misc_util import Configuration
     from numpy.distutils.system_info import dict_append, get_info
@@ -86,45 +33,12 @@ def configuration(parent_package='', top_path=None):
         #plat = 'gdkpixbuf2'
 
 
-    #-------------------------------------------------------------------------
-    # Add the freetype library (agg 2.4 links against this)
-    #-------------------------------------------------------------------------
-
-    prefix = config.paths('freetype2/src')[0]
-    freetype_lib = 'freetype2_src'
-
-    def get_ft2_sources((lib_name, build_info), build_dir):
-        sources = [prefix + "/" + s for s in freetype2_sources]
-        if sys.platform=='darwin':
-            return sources[:]
-        return sources[:-1]
-
-    ft2_incl_dirs = ['freetype2/src/' + s for s in freetype2_dirs] \
-                    + ['freetype2/include', 'freetype2/src']
-    ft2_incl_dirs = config.paths(*ft2_incl_dirs)
-    if sys.platform == 'darwin' and '64bit' not in platform.architecture():
-        ft2_incl_dirs.append("/Developer/Headers/FlatCarbon")
-
-    config.add_library(freetype_lib,
-                       sources = [get_ft2_sources],
-                       include_dirs = ft2_incl_dirs,
-
-                       # This macro was introduced in Freetype 2.2; if it is
-                       # not defined, then the ftheader.h file (one of the
-                       # primary headers) won't pull in any additional internal
-                       # Freetype headers, and the library will mysteriously
-                       # fail to build.
-                       macros = [("FT2_BUILD_LIBRARY", None)],
-
-                       depends = ['freetype2'],
-                       )
-
     #-------------------------------------------------------------------------
     # Add the Agg sources
     #-------------------------------------------------------------------------
 
-    agg_include_dirs = [agg_dir+'/include',agg_dir+'/font_freetype'] + \
-                                   ft2_incl_dirs
+    agg_include_dirs = [agg_dir+'/include',agg_dir+'/font_freetype'] + ["/usr/include/freetype2/"]
+
     agg_sources = [agg_dir+'/src/*.cpp',
                     agg_dir+'/font_freetype/*.cpp']
     config.add_library(agg_lib,
@@ -138,7 +52,7 @@ def configuration(parent_package='', top_path=None):
     if sys.platform == 'darwin':
         define_macros = [('__DARWIN__', None)]
         macros = [('__DARWIN__', None)]
-        extra_link_args = ['-framework', 'Carbon']
+        extra_link_args = ['-framework', 'Carbon', '-Wl,-search_paths_first']
     else:
         define_macros = []
         macros = []
@@ -182,7 +96,7 @@ def configuration(parent_package='', top_path=None):
     if '64bit' not in platform.architecture():
         darwin_frameworks = ['Carbon', 'ApplicationServices', 'OpenGL']
     else:
-        darwin_frameworks = ['ApplicationServices', 'OpenGL']    
+        darwin_frameworks = ['ApplicationServices', 'OpenGL']
     darwin_opengl_opts = dict(
             include_dirs = [
               '/System/Library/Frameworks/%s.framework/Versions/A/Headers' % x
@@ -193,7 +107,7 @@ def configuration(parent_package='', top_path=None):
 
     build_info = {}
     kiva_lib = 'kiva_src'
-    build_libraries = [kiva_lib, agg_lib, freetype_lib]
+    build_libraries = [kiva_lib, agg_lib, "freetype", "X11"]
     if sys.platform == "win32":
         build_libraries += ["opengl32", "glu32"]
     elif sys.platform == "darwin":
@@ -236,6 +150,7 @@ def configuration(parent_package='', top_path=None):
         # the builder if we do not raise an exception.
         x11_info = get_info('x11', notfound_action=2)
         dict_append(plat_info, **x11_info)
+        dict_append(plat_info, libraries = ['X11'])
 
     elif plat=='gdkpixbuf2':
         #gdk_pixbuf_xlib_2 = get_info('gdk_pixbuf_xlib_2',notfound_action=1)
