Find extensions in runtime lib path
Setting MIDORI_EXTENSION_PATH is no longer needed.
This commit is contained in:
parent
c6f81c62e0
commit
25d8b8ddfc
8 changed files with 43 additions and 51 deletions
5
INSTALL
5
INSTALL
|
@ -73,9 +73,8 @@ If you want to test bookmarks, you can enable database tracing:
|
||||||
|
|
||||||
To disable Netscape plugins, use MOZ_PLUGIN_PATH=/.
|
To disable Netscape plugins, use MOZ_PLUGIN_PATH=/.
|
||||||
|
|
||||||
To debug extensions you can specify the path:
|
When running from the build folder, extensions will also be located
|
||||||
|
in the build folder (setting MIDORI_EXTENSION_PATH is no longer needed).
|
||||||
'export MIDORI_EXTENSION_PATH=_build/default/extensions'
|
|
||||||
|
|
||||||
For further information a tutorial for gdb and
|
For further information a tutorial for gdb and
|
||||||
reading up on how you can install debugging
|
reading up on how you can install debugging
|
||||||
|
|
|
@ -1225,9 +1225,7 @@ midori_load_extensions (gpointer data)
|
||||||
gchar* extension_path;
|
gchar* extension_path;
|
||||||
GDir* extension_dir = NULL;
|
GDir* extension_dir = NULL;
|
||||||
|
|
||||||
if (!(extension_path = g_strdup (g_getenv ("MIDORI_EXTENSION_PATH"))))
|
if ((extension_path = midori_app_get_lib_path (PACKAGE_NAME)))
|
||||||
extension_path = sokoke_find_lib_path (PACKAGE_NAME);
|
|
||||||
if (extension_path != NULL)
|
|
||||||
extension_dir = g_dir_open (extension_path, 0, NULL);
|
extension_dir = g_dir_open (extension_path, 0, NULL);
|
||||||
if (extension_dir != NULL)
|
if (extension_dir != NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1352,6 +1352,40 @@ midori_app_find_res_filename (const gchar* filename)
|
||||||
return g_build_filename (MDATADIR, PACKAGE_NAME, "res", filename, NULL);
|
return g_build_filename (MDATADIR, PACKAGE_NAME, "res", filename, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* midori_app_get_lib_path:
|
||||||
|
* @package: a filename or relative path
|
||||||
|
*
|
||||||
|
* Looks for the specified filename in Midori's library path.
|
||||||
|
*
|
||||||
|
* Return value: a newly allocated full path
|
||||||
|
*
|
||||||
|
* Since: 0.4.7
|
||||||
|
**/
|
||||||
|
gchar*
|
||||||
|
midori_app_get_lib_path (const gchar* package)
|
||||||
|
{
|
||||||
|
gchar* path;
|
||||||
|
|
||||||
|
path = g_build_filename (exec_path, "lib", package, NULL);
|
||||||
|
if (g_access (path, F_OK) == 0)
|
||||||
|
return path;
|
||||||
|
|
||||||
|
g_free (path);
|
||||||
|
|
||||||
|
if (!strcmp (package, PACKAGE_NAME))
|
||||||
|
{
|
||||||
|
/* Fallback to build folder */
|
||||||
|
path = g_build_filename (g_file_get_path (
|
||||||
|
g_file_new_for_path (exec_path)),
|
||||||
|
"extensions", NULL);
|
||||||
|
if (g_access (path, F_OK) == 0)
|
||||||
|
return path;
|
||||||
|
g_free (path);
|
||||||
|
}
|
||||||
|
|
||||||
|
return g_build_filename (MDATADIR, package, "lib", NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* midori_app_setup:
|
* midori_app_setup:
|
||||||
|
|
|
@ -91,6 +91,9 @@ midori_app_get_command_line (void);
|
||||||
gchar*
|
gchar*
|
||||||
midori_app_find_res_filename (const gchar* filename);
|
midori_app_find_res_filename (const gchar* filename);
|
||||||
|
|
||||||
|
gchar*
|
||||||
|
midori_app_get_lib_path (const gchar* package);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __MIDORI_APP_H__ */
|
#endif /* __MIDORI_APP_H__ */
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
#include "midori-preferences.h"
|
#include "midori-preferences.h"
|
||||||
|
|
||||||
|
#include "midori-app.h"
|
||||||
#include "midori-platform.h"
|
#include "midori-platform.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -365,7 +366,7 @@ midori_preferences_set_settings (MidoriPreferences* preferences,
|
||||||
SPANNED_ADD (button);
|
SPANNED_ADD (button);
|
||||||
/* Disable spell check option if there are no enchant modules */
|
/* Disable spell check option if there are no enchant modules */
|
||||||
{
|
{
|
||||||
gchar* enchant_path = sokoke_find_lib_path ("enchant");
|
gchar* enchant_path = midori_app_get_lib_path ("enchant");
|
||||||
if (enchant_path == NULL)
|
if (enchant_path == NULL)
|
||||||
{
|
{
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), FALSE);
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), FALSE);
|
||||||
|
|
|
@ -1095,45 +1095,6 @@ sokoke_find_config_filename (const gchar* folder,
|
||||||
return g_build_filename (SYSCONFDIR, "xdg", PACKAGE_NAME, folder, filename, NULL);
|
return g_build_filename (SYSCONFDIR, "xdg", PACKAGE_NAME, folder, filename, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* sokoke_find_lib_path:
|
|
||||||
* @folder: the lib subfolder
|
|
||||||
*
|
|
||||||
* Looks for the specified folder in the lib directories.
|
|
||||||
*
|
|
||||||
* Return value: a newly allocated full path, or %NULL
|
|
||||||
**/
|
|
||||||
gchar* sokoke_find_lib_path (const gchar* folder)
|
|
||||||
{
|
|
||||||
#ifdef G_OS_WIN32
|
|
||||||
gchar* path = g_win32_get_package_installation_directory_of_module (NULL);
|
|
||||||
gchar* lib_path = g_build_filename (path, "lib", folder ? folder : "", NULL);
|
|
||||||
g_free (path);
|
|
||||||
if (g_access (lib_path, F_OK) == 0)
|
|
||||||
return lib_path;
|
|
||||||
#else
|
|
||||||
const gchar* lib_dirs[] =
|
|
||||||
{
|
|
||||||
LIBDIR,
|
|
||||||
"/usr/local/lib",
|
|
||||||
"/usr/lib",
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
guint i;
|
|
||||||
|
|
||||||
for (i = 0; i < G_N_ELEMENTS (lib_dirs); i++)
|
|
||||||
{
|
|
||||||
gchar* lib_path = g_build_filename (lib_dirs[i], folder ? folder : "", NULL);
|
|
||||||
if (g_access (lib_path, F_OK) == 0)
|
|
||||||
return lib_path;
|
|
||||||
else
|
|
||||||
g_free (lib_path);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sokoke_find_data_filename:
|
* sokoke_find_data_filename:
|
||||||
* @filename: a filename or relative path
|
* @filename: a filename or relative path
|
||||||
|
|
|
@ -136,9 +136,6 @@ gchar*
|
||||||
sokoke_find_config_filename (const gchar* folder,
|
sokoke_find_config_filename (const gchar* folder,
|
||||||
const gchar* filename);
|
const gchar* filename);
|
||||||
|
|
||||||
gchar*
|
|
||||||
sokoke_find_lib_path (const gchar* folder);
|
|
||||||
|
|
||||||
gchar*
|
gchar*
|
||||||
sokoke_find_data_filename (const gchar* filename,
|
sokoke_find_data_filename (const gchar* filename,
|
||||||
gboolean res);
|
gboolean res);
|
||||||
|
|
3
wscript
3
wscript
|
@ -605,7 +605,6 @@ def shutdown ():
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
ext = 'MIDORI_EXTENSION_PATH=' + relfolder + os.sep + 'extensions'
|
|
||||||
nls = 'MIDORI_NLSPATH=' + relfolder + os.sep + 'po'
|
nls = 'MIDORI_NLSPATH=' + relfolder + os.sep + 'po'
|
||||||
lang = os.environ['LANG']
|
lang = os.environ['LANG']
|
||||||
try:
|
try:
|
||||||
|
@ -622,7 +621,7 @@ def shutdown ():
|
||||||
'LC_MESSAGES' + os.sep + APPNAME + '.mo')
|
'LC_MESSAGES' + os.sep + APPNAME + '.mo')
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
command = ext + ' ' + nls + ' '
|
command = nls + ' '
|
||||||
if is_mingw (Build.bld.env):
|
if is_mingw (Build.bld.env):
|
||||||
# This works only if everything is installed to that prefix
|
# This works only if everything is installed to that prefix
|
||||||
os.chdir (Build.bld.env['PREFIX'] + os.sep + 'bin')
|
os.chdir (Build.bld.env['PREFIX'] + os.sep + 'bin')
|
||||||
|
|
Loading…
Reference in a new issue