Skip to content
Snippets Groups Projects
Commit f79d3d2b authored by Jean-François Remacle's avatar Jean-François Remacle
Browse files

Added automatic scan dir

parent be69c887
No related branches found
No related tags found
No related merge requests found
# $Id: Makefile,v 1.2 2001-03-04 20:57:03 remacle Exp $ # $Id: Makefile,v 1.3 2001-03-05 02:02:41 remacle Exp $
# #
# Makefile for "libAdapt.a" # Makefile for "libAdapt.a"
# #
...@@ -18,7 +18,7 @@ OS_FLAGS = ...@@ -18,7 +18,7 @@ OS_FLAGS =
VERSION_FLAGS = VERSION_FLAGS =
RMFLAGS = -f RMFLAGS = -f
CFLAGS = $(C_FLAGS) $(OS_FLAGS) $(VERSION_FLAGS) $(INCLUDE) CFLAGS = $(C_FLAGS) $(OS_FLAGS) $(VERSION_FLAGS) $(INCLUDE) $(GUI_INCLUDE)
SRC = Plugin.cpp SRC = Plugin.cpp
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include <map> #include <map>
#include "Plugin.h" #include "Plugin.h"
#include "Message.h" #include "Message.h"
#include <FL/filename.H>
using namespace std; using namespace std;
const char *GMSH_PluginEntry = "GMSH_RegisterPlugin"; const char *GMSH_PluginEntry = "GMSH_RegisterPlugin";
...@@ -57,13 +58,28 @@ GMSH_PluginManager* GMSH_PluginManager::Instance() ...@@ -57,13 +58,28 @@ GMSH_PluginManager* GMSH_PluginManager::Instance()
void GMSH_PluginManager::RegisterDefaultPlugins() void GMSH_PluginManager::RegisterDefaultPlugins()
{ {
// For testing struct dirent **list;
char ext[6];
AddPlugin ("/cygdrive/c/develop/gmsh/Plugin/lib","libCutPlane");
return;
char *homeplugins = getenv ("GMSHPLUGINSHOME"); char *homeplugins = getenv ("GMSHPLUGINSHOME");
if(!homeplugins)return; if(!homeplugins)
homeplugins = "./Plugin/lib";
int nbFiles = filename_list(homeplugins,&list);
if(nbFiles <= 0) return;
for(int i=0;i<nbFiles;i++)
{
char *name = list[i]->d_name;
if(strlen(name) > 3)
{
strcpy(ext,name+(strlen(name)-3));
if(!strcmp(ext,".so"))
{
AddPlugin(homeplugins,name);
}
}
}
for(int i=0;i<nbFiles;i++)free(list[i]);
free (list);
} }
void GMSH_PluginManager::AddPlugin( char *dirName, char *pluginName) void GMSH_PluginManager::AddPlugin( char *dirName, char *pluginName)
...@@ -78,9 +94,9 @@ void GMSH_PluginManager::AddPlugin( char *dirName, char *pluginName) ...@@ -78,9 +94,9 @@ void GMSH_PluginManager::AddPlugin( char *dirName, char *pluginName)
char plugin_copyright[256]; char plugin_copyright[256];
char plugin_help[256]; char plugin_help[256];
class GMSH_Plugin* (*RegisterPlugin)(void); class GMSH_Plugin* (*RegisterPlugin)(void);
sprintf(dynamic_lib,"%s%s%s.so",dirName,SLASH,pluginName); sprintf(dynamic_lib,"%s%s%s",dirName,SLASH,pluginName);
Msg(INFO,"Opening Plugin %s",dynamic_lib); Msg(INFO,"Opening Plugin %s",dynamic_lib);
void *hlib = dlopen (dynamic_lib,RTLD_LAZY); void *hlib = dlopen (dynamic_lib,RTLD_NOW);
char *err = dlerror(); char *err = dlerror();
if(hlib == NULL) if(hlib == NULL)
{ {
......
...@@ -51,7 +51,7 @@ public: ...@@ -51,7 +51,7 @@ public:
class GMSH_PluginManager class GMSH_PluginManager
{ {
GMSH_PluginManager(); GMSH_PluginManager();
~GMSH_PluginManager(); virtual ~GMSH_PluginManager();
static GMSH_PluginManager *instance; static GMSH_PluginManager *instance;
PluginContainer* allPlugins; PluginContainer* allPlugins;
public : public :
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment