X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Fsetenv.py;h=b8eb466f8137327c7c2901b5d7b6fd1e141fc2a2;hb=acde82d9a3d34c28032d80123aa654197f7c26a4;hp=4eeff394b9f455c91f6ee2fb53fef45cc8406e38;hpb=7d2fe213bdf5bf962ce11e253020c9d3e0bc1cce;p=modules%2Fkernel.git diff --git a/bin/setenv.py b/bin/setenv.py index 4eeff394b..b8eb466f8 100755 --- a/bin/setenv.py +++ b/bin/setenv.py @@ -1,25 +1,27 @@ #!/usr/bin/env python -# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# -*- coding: iso-8859-1 -*- +# 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 +# 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 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, 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 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. +# 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 +# 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 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # + import sys, os, string, glob, time, pickle import orbmodule from launchConfigureParser import verbose @@ -62,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)] # ----------------------------------------------------------------------------- @@ -76,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 _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 @@ -93,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]) @@ -142,28 +144,36 @@ def get_config(silent=False): modules_list.remove("GUI") pass - if "SUPERV" in modules_list and not 'supervContainer' in args['standalone']: - args['standalone'].append("supervContainer") - pass - return args, modules_list, modules_root_dir # ----------------------------------------------------------------------------- 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 getLogDir, generateFileName, makeTmpDir, getPortNumber + + # create temporary directory for environment files needed by modules from the list + port = getPortNumber(False) + if port: + tmp_dir = getLogDir() + env_dir = generateFileName(tmp_dir, prefix="env", with_port=True) + makeTmpDir(env_dir) + pass + python_version="python%d.%d" % sys.version_info[0:2] modules_root_dir_list = [] 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] - modules_root_dir_list[:0] = [module_root_dir] + if module_root_dir not in modules_root_dir_list: + modules_root_dir_list[:0] = [module_root_dir] if sys.platform == "win32": add_path(os.path.join(module_root_dir,get_lib_dir(),salome_subdir), "PATH") @@ -185,57 +195,38 @@ def set_env(args, modules_list, modules_root_dir, silent=False): python_version,"site-packages", salome_subdir), "PYTHONPATH") + import platform + if platform.machine() == "x86_64": + add_path(os.path.join(module_root_dir,"lib64", + python_version,"site-packages", + salome_subdir), + "PYTHONPATH") + pass add_path(os.path.join(module_root_dir,get_lib_dir(), python_version,"site-packages", salome_subdir, "shared_modules"), "PYTHONPATH") - - # set environment for SMESH plugins - if module == "SMESH" : - os.environ["SMESH_MeshersList"]="StdMeshers" - if not os.environ.has_key("SALOME_StdMeshersResources"): - os.environ["SALOME_StdMeshersResources"] \ - = modules_root_dir["SMESH"]+"/share/"+salome_subdir+"/resources/smesh" + + # set environment by modules from the list + if port: + try: + mod=__import__(module.lower()+"_setenv") + mod.set_env(args) + pass + except: 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 - + pass + pass + pass + if sys.platform == 'win32': 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']: @@ -243,39 +234,16 @@ def set_env(args, modules_list, modules_root_dir, silent=False): if args['logger']: os.environ["SALOME_trace"]="with_logger" - # set environment for SUPERV module - os.environ["ENABLE_MACRO_NODE"]="1" # set resources variables if not yet set - # Done now by launchConfigureParser.py - #if os.getenv("GUI_ROOT_DIR"): - #if not os.getenv("SalomeAppConfig"): os.environ["SalomeAppConfig"] = os.getenv("GUI_ROOT_DIR") + "/share/salome/resources/gui" os.environ["CSF_SALOMEDS_ResourcesDefaults"] \ = os.path.join(modules_root_dir["KERNEL"],"share", salome_subdir,"resources","kernel") - if "GEOM" in modules_list: - if verbose() and not silent: print "GEOM OCAF Resources" - - # set CSF_PluginDefaults variable only if it is not customized - # by the user - - if not os.getenv("CSF_PluginDefaults"): - os.environ["CSF_PluginDefaults"] \ - = os.path.join(modules_root_dir["GEOM"],"share", - salome_subdir,"resources","geom") - os.environ["CSF_GEOMDS_ResourcesDefaults"] \ - = os.path.join(modules_root_dir["GEOM"],"share", - salome_subdir,"resources","geom") - if verbose() and not silent: print "GEOM Shape Healing Resources" - os.environ["CSF_ShHealingDefaults"] \ - = os.path.join(modules_root_dir["GEOM"],"share", - salome_subdir,"resources","geom") - # ----------------------------------------------------------------------------- -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