Bugfix: also recognize plugins when the main binary is installed in a different place than the libs.

This commit is contained in:
Matthias Koefferlein 2018-07-29 14:56:19 +02:00
parent 98ecc9e47b
commit ddfb084a8d
3 changed files with 16 additions and 18 deletions

View File

@ -98,11 +98,11 @@ static PluginDescriptor load_plugin (const std::string &pp)
void init (const std::vector<std::string> &_paths)
{
std::vector<std::string> paths = _paths;
if (paths.empty ()) {
std::string module_path = tl::get_module_path ((void *) &init);
if (! module_path.empty ()) {
paths.push_back (tl::absolute_path (module_path));
}
// add the module path so we also look beside the "db" library
std::string module_path = tl::get_module_path ((void *) &init);
if (! module_path.empty ()) {
paths.push_back (tl::absolute_path (module_path));
}
if (paths.empty ()) {
@ -119,7 +119,9 @@ void init (const std::vector<std::string> &_paths)
const char *db_plugin_dir = "db_plugins";
std::string pp = tl::combine_path (*p, db_plugin_dir);
tl::log << tl::sprintf (tl::to_string (tr ("Scanning '%s' for plugins ..")), pp);
if (tl::verbosity () >= 20) {
tl::info << "Scanning for db plugins: " << pp;
}
std::vector<std::string> ee = tl::dir_entries (pp, true, false);

View File

@ -51,9 +51,6 @@ tl::XMLElementList load_options_xml_element_list ()
}
}
// ignore all unknown elements
elements.append (tl::make_member<db::LoadLayoutOptions> ("*"));
return elements;
}
@ -68,9 +65,6 @@ tl::XMLElementList save_options_xml_element_list ()
}
}
// ignore all unknown elements
elements.append (tl::make_member<db::FormatSpecificWriterOptions> ("*"));
return elements;
}

View File

@ -99,11 +99,11 @@ void load_plugin (const std::string &pp)
void init (const std::vector<std::string> &_paths)
{
std::vector<std::string> paths = _paths;
if (paths.empty ()) {
std::string module_path = tl::get_module_path ((void *) &init);
if (! module_path.empty ()) {
paths.push_back (module_path);
}
// add the module path so we also look beside the "db" library
std::string module_path = tl::get_module_path ((void *) &init);
if (! module_path.empty ()) {
paths.push_back (tl::absolute_path (module_path));
}
if (paths.empty ()) {
@ -120,7 +120,9 @@ void init (const std::vector<std::string> &_paths)
const char *lay_plugin_dir = "lay_plugins";
std::string pp = tl::combine_path (*p, lay_plugin_dir);
tl::log << tl::sprintf (tl::to_string (tr ("Scanning '%s' for plugins ..")), pp);
if (tl::verbosity () >= 20) {
tl::info << "Scanning for lay plugins: " << pp;
}
std::vector<std::string> ee = tl::dir_entries (pp, true, false);