Salome HOME
Improvement of "setenv.py" script - setting of custom enviroment by those modules...
authorouv <ouv@opencascade.com>
Wed, 6 May 2009 13:17:00 +0000 (13:17 +0000)
committerouv <ouv@opencascade.com>
Wed, 6 May 2009 13:17:00 +0000 (13:17 +0000)
bin/Makefile.am
bin/smesh_setenv.py [new file with mode: 0644]

index 0f8aed92f79dfdc8b2f1b13b90825dc714cb39eb..afe9d2d86b222a020d8e3e86c0011e4a31a6c0e8 100644 (file)
@@ -30,4 +30,8 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
 # These files are data, module or lib files
 nodist_salomescript_DATA= VERSION
 
+# These files are python files
+dist_salomescript_PYTHON = \
+       smesh_setenv.py
+
 EXTRA_DIST+= VERSION.in
diff --git a/bin/smesh_setenv.py b/bin/smesh_setenv.py
new file mode 100644 (file)
index 0000000..b3240bf
--- /dev/null
@@ -0,0 +1,68 @@
+#!/usr/bin/env python
+#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+#  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+import os, sys
+from setenv import add_path, get_lib_dir, salome_subdir
+
+# -----------------------------------------------------------------------------
+
+def set_env(args):
+    """Add to the PATH-variables modules specific paths"""
+
+    python_version="python%d.%d" % sys.version_info[0:2]
+
+    os.environ["SMESH_MeshersList"]="StdMeshers"
+    if not os.environ.has_key("SALOME_StdMeshersResources"):
+        os.environ["SALOME_StdMeshersResources"] \
+        = os.environ["SMESH_ROOT_DIR"]+"/share/"+salome_subdir+"/resources/smesh"
+        pass
+    if args.has_key("SMESH_plugins"):
+        for plugin in args["SMESH_plugins"]:
+            plugin_root = ""
+            if os.environ.has_key(plugin+"_ROOT_DIR"):
+                plugin_root = os.environ[plugin+"_ROOT_DIR"]
+            else:
+                # workaround to avoid modifications of existing environment
+                if os.environ.has_key(plugin.upper()+"_ROOT_DIR"):
+                    plugin_root = os.environ[plugin.upper()+"_ROOT_DIR"]
+                    pass
+                pass
+            if plugin_root != "":
+                os.environ["SMESH_MeshersList"] \
+                = os.environ["SMESH_MeshersList"]+":"+plugin
+                if not os.environ.has_key("SALOME_"+plugin+"Resources"):
+                    os.environ["SALOME_"+plugin+"Resources"] \
+                    = plugin_root+"/share/"+salome_subdir+"/resources/"+plugin.lower()
+                    add_path(os.path.join(plugin_root,get_lib_dir(),python_version, "site-packages",salome_subdir), "PYTHONPATH")
+                    add_path(os.path.join(plugin_root,get_lib_dir(),salome_subdir), "PYTHONPATH")
+                    
+                    if sys.platform == "win32":
+                        add_path(os.path.join(plugin_root,get_lib_dir(),salome_subdir), "PATH")
+                    else:
+                        add_path(os.path.join(plugin_root,get_lib_dir(),salome_subdir), "LD_LIBRARY_PATH")
+                        add_path(os.path.join(plugin_root,"bin",salome_subdir), "PYTHONPATH")
+                        add_path(os.path.join(plugin_root,"bin",salome_subdir), "PATH")
+                        pass
+                    pass
+                pass
+            pass