mirror of
https://gitlab.gnome.org/GNOME/calls.git
synced 2024-12-04 20:07:36 +00:00
plugins: Rescan for plugins after adding search paths
Using rescan allows use to give a priority to search paths. So this way plugins in `CALLS_PLUGIN_DIR` take precedence over plugins we ship. This also makes sure that the plugin test searches in the same location as CallsManager.
This commit is contained in:
parent
baeae94c2e
commit
d804b996f4
2 changed files with 23 additions and 4 deletions
|
@ -803,18 +803,17 @@ calls_manager_init (CallsManager *self)
|
|||
dir = g_getenv ("CALLS_PLUGIN_DIR");
|
||||
if (dir && dir[0] != '\0') {
|
||||
g_autofree char *plugin_dir_provider = NULL;
|
||||
/** Add the directory to the search path. prepend_search_path() does not work
|
||||
* as expected. see https://gitlab.gnome.org/GNOME/libpeas/-/issues/19
|
||||
*/
|
||||
|
||||
plugin_dir_provider = g_build_filename (dir, "provider", NULL);
|
||||
g_debug ("Adding %s to plugin search path", plugin_dir_provider);
|
||||
peas_engine_add_search_path (peas, plugin_dir_provider, NULL);
|
||||
peas_engine_prepend_search_path (peas, plugin_dir_provider, NULL);
|
||||
}
|
||||
|
||||
default_plugin_dir_provider = g_build_filename(PLUGIN_LIBDIR, "provider", NULL);
|
||||
peas_engine_add_search_path (peas, default_plugin_dir_provider, NULL);
|
||||
g_debug ("Scanning for plugins in `%s'", default_plugin_dir_provider);
|
||||
|
||||
peas_engine_rescan_plugins (peas);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
* Author: Evangelos Ribeiro Tzaras <evangelos.tzaras@puri.sm>
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "calls-provider.h"
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
@ -47,15 +49,33 @@ main (gint argc,
|
|||
gchar *argv[])
|
||||
{
|
||||
g_autofree char *plugin_dir_provider = NULL;
|
||||
PeasEngine *peas;
|
||||
const gchar *dir;
|
||||
g_autofree char *default_plugin_dir_provider = NULL;
|
||||
|
||||
gtk_test_init (&argc, &argv, NULL);
|
||||
|
||||
peas = peas_engine_get_default ();
|
||||
|
||||
/* Add builddir as search path */
|
||||
#ifdef PLUGIN_BUILDDIR
|
||||
plugin_dir_provider = g_build_filename (PLUGIN_BUILDDIR, "provider", NULL);
|
||||
peas_engine_add_search_path (peas_engine_get_default (), plugin_dir_provider, NULL);
|
||||
#endif
|
||||
|
||||
dir = g_getenv ("CALLS_PLUGIN_DIR");
|
||||
if (dir && dir[0] != '\0') {
|
||||
g_autofree char *plugin_dir_provider = NULL;
|
||||
plugin_dir_provider = g_build_filename (dir, "provider", NULL);
|
||||
g_debug ("Adding %s to plugin search path", plugin_dir_provider);
|
||||
peas_engine_prepend_search_path (peas, plugin_dir_provider, NULL);
|
||||
}
|
||||
|
||||
default_plugin_dir_provider = g_build_filename (PLUGIN_LIBDIR, "provider", NULL);
|
||||
g_debug ("Adding %s to plugin search path", default_plugin_dir_provider);
|
||||
peas_engine_add_search_path (peas, default_plugin_dir_provider, NULL);
|
||||
peas_engine_rescan_plugins (peas);
|
||||
|
||||
g_test_add_func("/Calls/Plugins/load_plugins", test_calls_plugin_loading);
|
||||
|
||||
return g_test_run();
|
||||
|
|
Loading…
Reference in a new issue