27 #include "../common/Translator.h"
28 #include "../common/PlatformUtils.h"
34 #include <boost/filesystem.hpp>
35 #include <boost/format.hpp>
57 dirs.push_back( boost::filesystem::system_complete(
"." ).
string() );
72 boost::filesystem::path p(plgDir);
74 if(boost::filesystem::is_directory(p))
75 dirs.push_back( boost::filesystem::system_complete(p).
string() );
78 #ifdef TE_PLUGINS_INSTALL_PATH
80 boost::filesystem::path p(TE_PLUGINS_INSTALL_PATH);
82 if(boost::filesystem::is_directory(p))
83 dirs.push_back( boost::filesystem::system_complete(p).
string() );
90 if(!boost::filesystem::is_directory(path))
91 throw Exception((boost::format(
TE_TR(
"Default plugin directory is invalid: %1%.")) % path).str());
93 boost::filesystem::path p(boost::filesystem::system_complete(path));
95 std::string s(p.string());
97 if(std::find(m_pluginsDir.begin(), m_pluginsDir.end(), s) != m_pluginsDir.end())
100 m_pluginsDir.push_back(s);
111 std::size_t ndirs = m_pluginsDir.size();
114 for(std::size_t i = 0; i < ndirs; ++i)
116 if(!boost::filesystem::is_directory(m_pluginsDir[i]))
117 throw Exception((boost::format(
TE_TR(
"The base plugin directory is invalid: %1%.")) % m_pluginsDir[i]).str());
119 boost::filesystem::path path(m_pluginsDir[i]);
121 for(boost::filesystem::directory_iterator it(path), itEnd; it != itEnd; ++it)
123 if(boost::filesystem::is_regular_file(it->status()))
125 std::string ext = boost::filesystem::extension(it->path());
TECOMMONEXPORT std::string FindInTerraLibPath(const std::string &p)
Returns the path relative to a directory or file in the context of TerraLib.
const std::vector< std::string > & getPluginsDir() const
It returns the list of plugins base directories.
#define TE_DEFAULT_PLUGINS_DIR
The default look up plugin dir.
#define TE_TR(message)
It marks a string in order to get translated.
#define TE_DEFAULT_PLUGIN_EXTENSION
The default extension for plugins description files.
~DefaultFinder()
Destructor.
void getDefaultDirs(std::vector< std::string > &dirs) const
It returns the default plugins directories.
void addPluginsDir(const std::string &path)
It adds a new base location where the finder will search for installed plugins.
DefaultFinder()
Constructor.
std::vector< std::string > m_pluginsDir
The base list of directories to search for plugins.
Utility functions for dealing with plugins.
A plugin finder that search for plugins in some special directories defined by compile time macros...
The basic information about a plugin.
void getPlugins(boost::ptr_vector< PluginInfo > &plugins)
This method searches for installed plugins and output the plugins information in the PluginInfo vecto...
TEPLUGINEXPORT PluginInfo * GetInstalledPlugin(const std::string &pluginFilePath)
It returns information about a given plugin provided its plugin configuration file name or dir...