From 32ce3b0be98765c40a9c8aac40fe247f517238c0 Mon Sep 17 00:00:00 2001
From: Taylor Holberton <taylorcholberton@gmail.com>
Date: Thu, 22 May 2014 11:52:52 -0700
Subject: [PATCH] Added basic win/unix search paths and lib names

---
 Modules/FindFreetype.cmake | 85 +++++++++++++++++++++++++++++++++-------------
 1 file changed, 61 insertions(+), 24 deletions(-)

diff --git a/Modules/FindFreetype.cmake b/Modules/FindFreetype.cmake
index 1779b78..defd26a 100644
--- a/Modules/FindFreetype.cmake
+++ b/Modules/FindFreetype.cmake
@@ -51,6 +51,15 @@
 # wants explicit full paths and this trickery doesn't work too well.
 # I'm going to attempt to cut out the middleman and hope
 # everything still works.
+
+if (WIN32)
+  set (FREETYPE_PATHS ${FREETYPE_PATHS} $ENV{PROGRAMFILES}/freetype)
+  set (FREETYPE_PATHS ${FREETYPE_PATHS} $ENV{PROGRAMFILES}/freetype2)
+else()
+  set (FREETYPE_PATHS ${FREETYPE_PATHS} /usr)
+  set (FREETYPE_PATHS ${FREETYPE_PATHS} /usr/local)
+endif()
+
 find_path(FREETYPE_INCLUDE_DIR_ft2build ft2build.h
   HINTS
     ENV FREETYPE_DIR
@@ -62,7 +71,11 @@ find_path(FREETYPE_INCLUDE_DIR_ft2build ft2build.h
     ENV GTKMM_BASEPATH
     [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]
     [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]
-  PATH_SUFFIXES include/freetype2 include freetype2
+    ${FREETYPE_PATHS}
+  PATH_SUFFIXES
+    include/freetype2
+    include
+    freetype2
 )
 
 find_path(FREETYPE_INCLUDE_DIR_freetype2
@@ -79,14 +92,22 @@ find_path(FREETYPE_INCLUDE_DIR_freetype2
     ENV GTKMM_BASEPATH
     [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]
     [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]
-  PATH_SUFFIXES include/freetype2 include freetype2
+    ${FREETYPE_PATHS}
+  PATH_SUFFIXES
+    include/freetype2
+    include
+    freetype2
 )
 
 find_library(FREETYPE_LIBRARY
-  NAMES freetype libfreetype freetype219
+  NAMES
+    freetype
+    freetype2
+    libfreetype
+    libfreetype2
+    freetype219
   HINTS
     ENV FREETYPE_DIR
-  PATH_SUFFIXES lib
   PATHS
     /usr/X11R6
     /usr/local/X11R6
@@ -95,9 +116,13 @@ find_library(FREETYPE_LIBRARY
     ENV GTKMM_BASEPATH
     [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]
     [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]
+    ${FREETYPE_PATHS}
+  PATH_SUFFIXES
+    lib
 )
 
 # set the user variables
+
 if(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
   set(FREETYPE_INCLUDE_DIRS "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}")
   list(REMOVE_DUPLICATES FREETYPE_INCLUDE_DIRS)
@@ -111,31 +136,43 @@ elseif(EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype.h")
 endif()
 
 if(FREETYPE_INCLUDE_DIR_freetype2 AND FREETYPE_H)
-    file(STRINGS "${FREETYPE_H}" freetype_version_str
-         REGEX "^#[\t ]*define[\t ]+FREETYPE_(MAJOR|MINOR|PATCH)[\t ]+[0-9]+$")
-
-    unset(FREETYPE_VERSION_STRING)
-    foreach(VPART MAJOR MINOR PATCH)
-        foreach(VLINE ${freetype_version_str})
-            if(VLINE MATCHES "^#[\t ]*define[\t ]+FREETYPE_${VPART}[\t ]+([0-9]+)$")
-                set(FREETYPE_VERSION_PART "${CMAKE_MATCH_1}")
-                if(FREETYPE_VERSION_STRING)
-                    set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_STRING}.${FREETYPE_VERSION_PART}")
-                else()
-                    set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_PART}")
-                endif()
-                unset(FREETYPE_VERSION_PART)
-            endif()
-        endforeach()
+  file(STRINGS "${FREETYPE_H}" freetype_version_str
+       REGEX "^#[\t ]*define[\t ]+FREETYPE_(MAJOR|MINOR|PATCH)[\t ]+[0-9]+$")
+
+  unset(FREETYPE_VERSION_STRING)
+  foreach(VPART MAJOR MINOR PATCH)
+    foreach(VLINE ${freetype_version_str})
+      if(VLINE MATCHES "^#[\t ]*define[\t ]+FREETYPE_${VPART}[\t ]+([0-9]+)$")
+        set(FREETYPE_VERSION_PART "${CMAKE_MATCH_1}")
+        if(FREETYPE_VERSION_STRING)
+          set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_STRING}.${FREETYPE_VERSION_PART}")
+        else()
+          set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_PART}")
+        endif()
+        unset(FREETYPE_VERSION_PART)
+      endif()
     endforeach()
+  endforeach()
 endif()
 
 
 # handle the QUIETLY and REQUIRED arguments and set FREETYPE_FOUND to TRUE if
 # all listed variables are TRUE
+
 include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype
-                                  REQUIRED_VARS FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS
-                                  VERSION_VAR FREETYPE_VERSION_STRING)
 
-mark_as_advanced(FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR_freetype2 FREETYPE_INCLUDE_DIR_ft2build)
+find_package_handle_standard_args(
+  Freetype
+  REQUIRED_VARS
+    FREETYPE_LIBRARY
+    FREETYPE_INCLUDE_DIRS
+  VERSION_VAR
+    FREETYPE_VERSION_STRING
+)
+
+mark_as_advanced(
+  FREETYPE_LIBRARY
+  FREETYPE_INCLUDE_DIR_freetype2
+  FREETYPE_INCLUDE_DIR_ft2build
+)
+
-- 
1.8.5.2.msysgit.0

