+2008-10-23 Johan Bilien <jobi@via.ecp.fr>
+
+ Bug 557468 – Support for GI_TYPELIB_PATH
+
+ * girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the
+ provided paths to the global search path.
+
2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
Bug 557379 – g-ir-generate not writing the 'abstract' attribute
%.typelib: %.gir $(top_builddir)/tools/g-ir-compiler$(EXEEXT) Makefile
$(DEBUG) $(top_builddir)/tools/g-ir-compiler$(EXEEXT) --includedir=. $(G_IR_COMPILER_OPTS) $< -o $@
-typelibsdir = $(datadir)/girepository
+typelibsdir = $(libdir)/girepository
typelibs_DATA = GLib-2.0.typelib GModule-2.0.typelib GObject-2.0.typelib Gio-2.0.typelib
CLEANFILES += $(typelibs_DATA)
{
g_static_mutex_lock (&globals_lock);
- if (default_repository == NULL)
- {
+ if (default_repository == NULL)
+ {
default_repository = g_object_new (G_TYPE_IREPOSITORY, NULL);
}
{
const gchar *const *datadirs;
const gchar *const *dir;
-
- datadirs = g_get_system_data_dirs ();
-
+ const gchar *type_lib_path_env;
+
+ type_lib_path_env = g_getenv ("GI_TYPELIB_PATH");
+
search_path = NULL;
- for (dir = datadirs; *dir; dir++) {
- char *path = g_build_filename (*dir, "girepository", NULL);
- search_path = g_slist_prepend (search_path, path);
- }
+ if (type_lib_path_env)
+ {
+ gchar **custom_dirs;
+ gchar **d;
+
+ custom_dirs = g_strsplit (type_lib_path_env, G_SEARCHPATH_SEPARATOR_S, 0);
+
+ d = custom_dirs;
+ while (*d)
+ {
+ search_path = g_slist_prepend (search_path, *d);
+ d++;
+ }
+
+ /* ownership of the array content was passed to the list */
+ g_free (custom_dirs);
+ }
+
+ datadirs = g_get_system_data_dirs ();
+
+ for (dir = datadirs; *dir; dir++)
+ {
+ char *path = g_build_filename (*dir, "girepository", NULL);
+ search_path = g_slist_prepend (search_path, path);
+ }
+
search_path = g_slist_reverse (search_path);
}