From 5f9849866930aa02b463de1dae7eba1f839a600f Mon Sep 17 00:00:00 2001 From: Ochi Wolfe Date: Sun, 25 Aug 2013 23:44:23 +0200 Subject: [PATCH] More flexible search for shared libraries --- TextureCreator/lib/FontFaceCreator.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/TextureCreator/lib/FontFaceCreator.py b/TextureCreator/lib/FontFaceCreator.py index 92c5bf9..0de773c 100644 --- a/TextureCreator/lib/FontFaceCreator.py +++ b/TextureCreator/lib/FontFaceCreator.py @@ -18,6 +18,7 @@ http://www.cairographics.org/freetypepython/ import cairo import ctypes import ctypes.util +import os _freetypeInitialized = False @@ -28,6 +29,15 @@ class PycairoContext(ctypes.Structure): ("base", ctypes.c_void_p) ] +def findLib(fileNameGuess, libNameGuesses): + if os.path.exists(fileNameGuess): + return fileNameGuess + for libNameGuess in libNameGuesses: + libPath = ctypes.util.find_library(libNameGuess) + if libPath: + return libPath + return None + def fontFaceFromFile(filename): global _freetypeInitialized global _freetype_so @@ -40,11 +50,11 @@ def fontFaceFromFile(filename): if not _freetypeInitialized: # Find shared libraries. - freetypeLibName = ctypes.util.find_library("freetype") + freetypeLibName = findLib("freetype6.dll", ["freetype", "freetype6"]) if not freetypeLibName: raise Exception("FreeType library not found.") - cairoLibName = ctypes.util.find_library("cairo") + cairoLibName = findLib("libcairo-2.dll", ["cairo", "libcairo-2"]) if not cairoLibName: raise Exception("Cairo library not found.")