summaryrefslogtreecommitdiff
path: root/pango/pango-utils.c
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2001-10-03 06:18:15 +0000
committerTor Lillqvist <tml@src.gnome.org>2001-10-03 06:18:15 +0000
commit5c3dee45a584a81d800ffc8291b9169af6d790c0 (patch)
treef5b5614634e91472fc15219ea301da7f4cc247c8 /pango/pango-utils.c
parent3346b3802575f161ac9880a3ca08a3f772eb7e0d (diff)
downloadpango-5c3dee45a584a81d800ffc8291b9169af6d790c0.tar.gz
Add the Win32 GDI Pango backend to autoconfiguration:
2001-10-03 Tor Lillqvist <tml@iki.fi> Add the Win32 GDI Pango backend to autoconfiguration: * configure.in: Call AC_LIBTOOL_WIN32_DLL. Check for native Win32 or Cygwin, set automake conditional PLATFORM_WIN32. Check for native Win32, set OS_WIN32. Refactor the Xrender+Xft+Xft+FreeType.h checks not to use AC_CHECK_LIBs inside eachother, autoconf 2.52e on Cygwin generated bad shell code for that. Check for gdi32 library, set automake conditional HAVE_WIN32. Add the basic-win32 module, add INCLUDED_WIN32_MODULES and INCLUDE_BASIC_WIN32. Write pango/module-defs-win32.c. Generate pangowin32*.pc. * pangowin32.pc.in * pangowin32-uninstalled.pc.in: New files. * Makefile.am: Add pangowin32*.pc.in. * .cvsignore: Add pangowin32*.pc. * modules/basic/Makefile.am: Add the basic-win32 backend. Use -no-undefined on PLATFORM_WIN32. * pango/Makefile.am: Add the Win32 backend. Use -no-undefined on PLATFORM_WIN32. Use the .def files on OS_WIN32. Link libpangoft2 with GLIB_LIBS. * pango/pango-utils.c: (DllMain): New function, on G_OS_WIN32. Used to get the actual DLL name, which is tucked away. (pango_get_sysconf_subdirectory, pango_get_lib_subdirectory): (Win32): Append VERSION to the registry key passed to g_win32_get_package_installation_subdirectory(). Use the real DLL name from above instead of assuming the DLL has a certain name. Other Win32 backend fixes: * pango/pangowin32-fontmap.c: (free_coverages_foreach): Remove, unused. * pango/pangowin32.c: Remove unused variables. * pango/pangowin32.def: Add pango_win32_font_get_glyph_index. * pango/pangowin32.h: Remove pango_win32_font_get_coverage, which is static.
Diffstat (limited to 'pango/pango-utils.c')
-rw-r--r--pango/pango-utils.c27
1 files changed, 25 insertions, 2 deletions
diff --git a/pango/pango-utils.c b/pango/pango-utils.c
index 66fa2567..930a12e2 100644
--- a/pango/pango-utils.c
+++ b/pango/pango-utils.c
@@ -615,6 +615,29 @@ pango_config_key_get (const char *key)
return g_strdup (g_hash_table_lookup (config_hash, key));
}
+#ifdef G_OS_WIN32
+
+/* DllMain function needed to tuck away the DLL name */
+
+static char dll_name[MAX_PATH];
+
+BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved)
+{
+ switch (fdwReason)
+ {
+ case DLL_PROCESS_ATTACH:
+ GetModuleFileName ((HMODULE) hinstDLL, dll_name, sizeof (dll_name));
+ break;
+ }
+
+ return TRUE;
+}
+
+#endif /* G_OS_WIN32 */
+
G_CONST_RETURN char *
pango_get_sysconf_subdirectory (void)
{
@@ -623,7 +646,7 @@ pango_get_sysconf_subdirectory (void)
if (result == NULL)
result = g_win32_get_package_installation_subdirectory
- ("pango", g_strdup_printf ("pango-%s.dll", PANGO_VERSION), "etc\\pango");
+ (PACKAGE " " VERSION, g_path_get_basename (dll_name), "etc\\pango");
return result;
#else
@@ -639,7 +662,7 @@ pango_get_lib_subdirectory (void)
if (result == NULL)
result = g_win32_get_package_installation_subdirectory
- ("pango", g_strdup_printf ("pango-%s.dll", PANGO_VERSION), "lib\\pango");
+ (PACKAGE " " VERSION, g_path_get_basename (dll_name), "lib\\pango");
return result;
#else