Missed this part of Grahams patch.
authorjmayer <jmayer@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 6 Oct 2013 18:19:58 +0000 (18:19 +0000)
committerjmayer <jmayer@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 6 Oct 2013 18:19:58 +0000 (18:19 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@52411 f5534014-38df-0310-8fa8-9805f1628bb7

cmake/modules/FindFreetype.cmake [new file with mode: 0644]

diff --git a/cmake/modules/FindFreetype.cmake b/cmake/modules/FindFreetype.cmake
new file mode 100644 (file)
index 0000000..aae944b
--- /dev/null
@@ -0,0 +1,134 @@
+#
+# $Id$
+#
+# - Locate FreeType library
+# This module defines
+#  FREETYPE_LIBRARIES, the library to link against
+#  FREETYPE_FOUND, if false, do not try to link to FREETYPE
+#  FREETYPE_INCLUDE_DIRS, where to find headers.
+#  FREETYPE_VERSION_STRING, the version of freetype found (since CMake 2.8.8)
+#  This is the concatenation of the paths:
+#  FREETYPE_INCLUDE_DIR_ft2build
+#  FREETYPE_INCLUDE_DIR_freetype2
+#
+# $FREETYPE_DIR is an environment variable that would
+# correspond to the ./configure --prefix=$FREETYPE_DIR
+# used in building FREETYPE.
+
+#=============================================================================
+# Copyright 2007-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+# Created by Eric Wing.
+# Modifications by Alexander Neundorf.
+# This file has been renamed to "FindFreetype.cmake" instead of the correct
+# "FindFreeType.cmake" in order to be compatible with the one from KDE4, Alex.
+
+# Ugh, FreeType seems to use some #include trickery which
+# makes this harder than it should be. It looks like they
+# put ft2build.h in a common/easier-to-find location which
+# then contains a #include to a more specific header in a
+# more specific location (#include <freetype/config/ftheader.h>).
+# Then from there, they need to set a bunch of #define's
+# so you can do something like:
+# #include FT_FREETYPE_H
+# Unfortunately, using CMake's mechanisms like include_directories()
+# 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.
+
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("gtk2" "FREETYPE_HINTS")
+
+find_path(FREETYPE_INCLUDE_DIR_ft2build ft2build.h
+  HINTS
+    ENV FREETYPE_DIR
+  PATHS
+    /usr/X11R6
+    /usr/local/X11R6
+    /usr/local/X11
+    /usr/freeware
+  PATH_SUFFIXES include/freetype2 include
+  HINTS "${FREETYPE_HINTS}"
+)
+
+find_path(FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h
+  HINTS
+    ENV FREETYPE_DIR
+  PATHS
+    /usr/X11R6
+    /usr/local/X11R6
+    /usr/local/X11
+    /usr/freeware
+  PATH_SUFFIXES include/freetype2 include
+  HINTS "${FREETYPE_HINTS}"
+)
+
+find_library(FREETYPE_LIBRARY
+  NAMES freetype libfreetype freetype219
+  HINTS
+    ENV FREETYPE_DIR
+  PATH_SUFFIXES lib
+  PATHS
+  /usr/X11R6
+  /usr/local/X11R6
+  /usr/local/X11
+  /usr/freeware
+  HINTS "${FREETYPE_HINTS}"
+)
+
+# 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}")
+endif()
+set(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}")
+
+if(FREETYPE_INCLUDE_DIR_freetype2 AND EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
+    file(STRINGS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/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}")
+                string(REGEX REPLACE "^#[\t ]*define[\t ]+FREETYPE_${VPART}[\t ]+([0-9]+)$" "\\1"
+                       FREETYPE_VERSION_PART "${VLINE}")
+                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(FindPackageHandleStandardArgs)
+if(WIN32)
+# Win32 doesn't require a freetype library
+    FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype
+                                      REQUIRED_VARS FREETYPE_INCLUDE_DIRS
+                                      VERSION_VAR FREETYPE_VERSION_STRING)
+else(WIN32)
+    FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype
+                                      REQUIRED_VARS FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS
+                                      VERSION_VAR FREETYPE_VERSION_STRING)
+endif(WIN32)
+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)