void manager::init() const { LOG_FT << "Cairo version: " << cairo_version_string() << std::endl; LOG_FT << "Pango version: " << pango_version_string() << std::endl; #ifdef CAIRO_HAS_FT_FONT if (!FcConfigAppFontAddDir(FcConfigGetCurrent(), reinterpret_cast<const FcChar8 *>((game_config::path + "/fonts").c_str()))) { ERR_FT << "Could not load the true type fonts" << std::endl; throw error(); } #endif #if CAIRO_HAS_WIN32_FONT BOOST_FOREACH(const std::string& path, filesystem::get_binary_paths("fonts")) { std::vector<std::string> files; if(filesystem::is_directory(path)) filesystem::get_files_in_dir(path, &files, NULL, filesystem::ENTIRE_FILE_PATH); BOOST_FOREACH(const std::string& file, files) { if(file.substr(file.length() - 4) == ".ttf" || file.substr(file.length() - 4) == ".ttc") { utf16::string ufile = unicode_cast<utf16::string>(file); std::wstring wfile(ufile.begin(), ufile.end()); AddFontResourceW(wfile.c_str()); } } } #endif }
static char* get_pangoversion_attrib(cdCtxCanvas* ctxcanvas) { (void)ctxcanvas; #if PANGO_VERSION_CHECK(1,16,0) return (char*)pango_version_string(); #else return "1.0"; #endif }
static void dump_dependencies(void) { #ifdef __GNUC__ g_print ("Compiler: GCC " __VERSION__ "\n"); #elif defined _MSC_VER g_print ("Compiler: MSC %d\n", _MSC_VER); #else g_print ("Compiler: unknown\n"); #endif /* some flags/defines which may be interesting */ g_print (" with : " #ifdef G_THREADS_ENABLED "threads " #endif #ifdef HAVE_CAIRO "cairo " #endif #ifdef HAVE_GNOME "gnome " #endif #ifdef HAVE_LIBART "libart " #endif #ifdef HAVE_PANGOCAIRO "pangocairo " #endif "\n"); /* print out all those dependies, both compile and runtime if possible * Note: this is not meant to be complete but does only include libaries * which may or have cause(d) us trouble in some versions */ g_print ("Library versions (at compile time)\n"); #ifdef HAVE_LIBPNG g_print ("libpng : %s (%s)\n", png_get_header_ver(NULL), PNG_LIBPNG_VER_STRING); #endif #ifdef HAVE_FREETYPE { FT_Library ft_library; FT_Int ft_major_version; FT_Int ft_minor_version; FT_Int ft_micro_version; if (FT_Init_FreeType (&ft_library) == 0) { FT_Library_Version (ft_library, &ft_major_version, &ft_minor_version, &ft_micro_version); g_print ("freetype: %d.%d.%d\n", ft_major_version, ft_minor_version, ft_micro_version); FT_Done_FreeType (ft_library); } else g_print ("freetype: ?.?.?\n"); } #endif { const gchar* libxml_rt_version = "?"; #if 0 /* this is stupid, does not compile on Linux: * app_procs.c:504: error: expected identifier before '(' token * * In fact libxml2 has different ABI for LIBXML_THREAD_ENABLED, this code only compiles without * threads enabled, but apparently it does only work when theay are. */ xmlInitParser(); if (xmlGetGlobalState()) libxml_rt_version = xmlGetGlobalState()->xmlParserVersion; #endif libxml_rt_version = xmlParserVersion; if (atoi(libxml_rt_version)) g_print ("libxml : %d.%d.%d (%s)\n", atoi(libxml_rt_version) / 10000, atoi(libxml_rt_version) / 100 % 100, atoi(libxml_rt_version) % 100, LIBXML_DOTTED_VERSION); else /* may include "extra" */ g_print ("libxml : %s (%s)\n", libxml_rt_version ? libxml_rt_version : "??", LIBXML_DOTTED_VERSION); } g_print ("glib : %d.%d.%d (%d.%d.%d)\n", glib_major_version, glib_minor_version, glib_micro_version, GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); #ifdef PANGO_VERSION_ENCODE g_print ("pango : %s (%d.%d.%d)\n", pango_version_string(), PANGO_VERSION_MAJOR, PANGO_VERSION_MINOR, PANGO_VERSION_MICRO); #else g_print ("pango : version not available (>= 1.14.x)\n"); /* Pango did not provide such */ #endif #if HAVE_CAIRO # ifdef CAIRO_VERSION_STRING g_print ("cairo : %s (%s)\n", cairo_version_string(), CAIRO_VERSION_STRING); # else g_print ("cairo : %s (%d.%d.%d)\n", cairo_version_string(), CAIRO_VERSION_MAJOR, CAIRO_VERSION_MINOR, CAIRO_VERSION_MICRO); # endif #endif #if 0 { gchar linkedname[1024]; gint len = 0; /* relying on PREFIX is wrong */ if ((len = readlink (PREFIX "/lib/libpango-1.0.so", linkedname, 1023)) > 0) { /* man 2 readlink : does not append a NUL character */ linkedname[len] = '\0'; g_print ("%s/%s\n", PREFIX, linkedname); } } #endif g_print ("gtk+ : %d.%d.%d (%d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version, GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); #if 0 /* we could read $PREFIX/share/gnome-about/gnome-version.xml * but is it worth the effort ? */ g_print ("gnome : %d.%d.%d (%d.%d.%d)\n" gnome_major_version, gnome_minor_version, gnome_micro_version, GNOME_MAJOR_VERSION, GNOME_MINOR_VERSION, GNOME_MICRO_VERSION); #endif }
static PyObject * pango_GetVersion(PyObject *self, PyObject *args) { return PyString_FromString(pango_version_string()); }