From 443674faaa0c6c79492732fd56360faeca06e9ab Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Mon, 12 Oct 2009 00:18:48 +0300 Subject: [PATCH] Construct the gio module directory pathname at run-time on Windows --- gio/giomodule.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gio/giomodule.c b/gio/giomodule.c index ec5b650..93405e5 100644 --- a/gio/giomodule.c +++ b/gio/giomodule.c @@ -297,6 +297,39 @@ extern GType _g_win32_volume_monitor_get_type (void); extern GType g_win32_directory_monitor_get_type (void); extern GType _g_winhttp_vfs_get_type (void); +#ifdef G_PLATFORM_WIN32 + +#include + +static HMODULE gio_dll = NULL; + +#ifdef DLL_EXPORT + +BOOL WINAPI +DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, + LPVOID lpvReserved) +{ + if (fdwReason == DLL_PROCESS_ATTACH) + gio_dll = hinstDLL; + + return TRUE; +} + +#endif + +#undef GIO_MODULE_DIR + +/* GIO_MODULE_DIR is used only in code called just once, + * so no problem leaking this + */ +#define GIO_MODULE_DIR \ + g_build_filename (g_win32_get_package_installation_directory_of_module (gio_dll), \ + "lib/gio/modules", \ + NULL) + +#endif + void _g_io_modules_ensure_extension_points_registered (void) { -- 2.7.4