Salome HOME
Associate ports to application path to prevent from killing *all* applications
[modules/kernel.git] / bin / setenv.py
index 9443fa1c1b6ce0bbbde594700af3c055d4873b7d..693a51feb09365dfcd52bab439c2f341c3846b62 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2016  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
@@ -8,7 +8,7 @@
 # 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.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -64,7 +64,7 @@ def add_path(directory, variable_name):
         newpath = string.join(newpath, splitsym)
         os.environ[variable_name] = newpath
         if variable_name == "PYTHONPATH":
-            sys.path[:0] = [directory]
+            sys.path[:0] = [os.path.realpath(directory)]
 
 # -----------------------------------------------------------------------------
 
@@ -78,15 +78,15 @@ def get_lib_dir():
 
 # -----------------------------------------------------------------------------
 
-def get_config(silent=False):
+def get_config(silent=False, exeName=None):
     """
     Get list of modules, paths.
-    
+
     Read args from launch configure xml file and command line options.
     Check variables <module>_ROOT_DIR and set list of used modules.
-    Return args, modules_list, modules_root_dir    
+    Return args, modules_list, modules_root_dir
     """
-    
+
     # read args from launch configure xml file and command line options
 
     #*** Test additional option
@@ -95,7 +95,7 @@ def get_config(silent=False):
     #*** o_j = optparse.Option("-j", "--join", action="store_true", dest="join", help=help_str)
 
     import launchConfigureParser
-    args = launchConfigureParser.get_env()
+    args = launchConfigureParser.get_env(exeName=exeName)
 
     #*** Test additional option
     #*** args = launchConfigureParser.get_env([o_j])
@@ -150,14 +150,14 @@ def get_config(silent=False):
 
 def set_env(args, modules_list, modules_root_dir, silent=False):
     """Add to the PATH-variables modules specific paths"""
-    
+
     import os
-    from salome_utils import getTmpDir, generateFileName, makeTmpDir, getPortNumber
+    from salome_utils import getLogDir, generateFileName, makeTmpDir, getPortNumber
 
     # create temporary directory for environment files needed by modules from the list
     port = getPortNumber(False)
     if port:
-        tmp_dir = getTmpDir()
+        tmp_dir = getLogDir()
         env_dir = generateFileName(tmp_dir, prefix="env", with_port=True)
         makeTmpDir(env_dir)
         pass
@@ -167,8 +167,8 @@ def set_env(args, modules_list, modules_root_dir, silent=False):
     if os.getenv('SALOME_BATCH') == None:
       os.putenv('SALOME_BATCH','0')
     if args["gui"] :
-        modules_list = modules_list[:] + ["GUI"] 
-    modules_list = modules_list[:] + ["KERNEL"] 
+        modules_list = modules_list[:] + ["GUI"]
+    modules_list = modules_list[:] + ["KERNEL"]
     for module in modules_list :
         if modules_root_dir.has_key(module):
             module_root_dir = modules_root_dir[module]
@@ -177,6 +177,9 @@ def set_env(args, modules_list, modules_root_dir, silent=False):
             if sys.platform == "win32":
               add_path(os.path.join(module_root_dir,get_lib_dir(),salome_subdir),
                      "PATH")
+            elif sys.platform == "darwin":
+              add_path(os.path.join(module_root_dir,get_lib_dir(),salome_subdir),
+                     "DYLD_LIBRARY_PATH")
             else:
               add_path(os.path.join(module_root_dir,get_lib_dir(),salome_subdir),
                      "LD_LIBRARY_PATH")
@@ -224,9 +227,9 @@ def set_env(args, modules_list, modules_root_dir, silent=False):
         os.environ["SALOMEPATH"]=";".join(modules_root_dir_list)
     else:
         os.environ["SALOMEPATH"]=":".join(modules_root_dir_list)
-    
+
     # set trace environment variable
-    
+
     if not os.environ.has_key("SALOME_trace"):
         os.environ["SALOME_trace"]="local"
     if args['file']:
@@ -242,8 +245,8 @@ def set_env(args, modules_list, modules_root_dir, silent=False):
 
 # -----------------------------------------------------------------------------
 
-def main(silent=False):
-    args, modules_list, modules_root_dir = get_config(silent=silent)
+def main(silent=False, exeName=None):
+    args, modules_list, modules_root_dir = get_config(silent=silent, exeName=exeName)
     set_env(args, modules_list, modules_root_dir, silent=silent)
     return args