X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Fsetenv.py;h=6555866197cc3b0a36460a2f10bfa85f3c4f12ee;hb=28ccecc39947373ea231ff46a3d0c9a5c2448bc3;hp=21ad0a2a77ecd23d857f8e668e715c6de056a520;hpb=34bdd08c1cbba32e415e32489d56f91cf89e76da;p=modules%2Fkernel.git diff --git a/bin/setenv.py b/bin/setenv.py index 21ad0a2a7..655586619 100755 --- a/bin/setenv.py +++ b/bin/setenv.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2021 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 @@ -39,28 +39,21 @@ salome_subdir = "salome" def add_path(directory, variable_name): """Function helper to add environment variables""" - if sys.platform == "win32": - splitsym = ";" - else: - splitsym = ":" if variable_name not in os.environ: os.environ[variable_name] = "" pass if os.path.exists(directory): newpath=[] - for _dir in os.environ[variable_name].split(splitsym): + for _dir in os.environ[variable_name].split(os.pathsep): if os.path.exists(_dir): - if sys.platform != "win32": - if not os.path.samefile(_dir, directory): - newpath.append(_dir) - else: + if not os.path.samefile(_dir, directory): newpath.append(_dir) else: if os.path.abspath(_dir) != os.path.abspath(directory): newpath.append(_dir) pass newpath[:0] = [ directory ] - newpath = splitsym.join(newpath) + newpath = os.pathsep.join(newpath) os.environ[variable_name] = newpath if variable_name == "PYTHONPATH": sys.path[:0] = [os.path.realpath(directory)] @@ -77,7 +70,7 @@ def get_lib_dir(): # ----------------------------------------------------------------------------- -def get_config(silent=False, exeName=None): +def get_config(silent=False, exeName=None, keepEnvironment=True): """ Get list of modules, paths. @@ -90,7 +83,7 @@ def get_config(silent=False, exeName=None): import launchConfigureParser - args = launchConfigureParser.get_env(exeName=exeName) + args = launchConfigureParser.get_env(exeName=exeName, keepEnvironment=keepEnvironment) # Check variables _ROOT_DIR @@ -140,12 +133,19 @@ def get_config(silent=False, exeName=None): # ----------------------------------------------------------------------------- -def set_env(args, modules_list, modules_root_dir, silent=False): +def set_env(args, modules_list, modules_root_dir, silent=False, keepEnvironment=True): """Add to the PATH-variables modules specific paths""" import os from salome_utils import getLogDir, generateFileName, makeTmpDir, getPortNumber + if 'launcher' in args: + pos = args['launcher'].find(":") + if pos != -1: + machine = args['launcher'][0:pos] + port = args['launcher'][pos+1:] + os.environ["NSPORT"] = port + # create temporary directory for environment files needed by modules from the list port = getPortNumber(False) if port: @@ -160,66 +160,68 @@ def set_env(args, modules_list, modules_root_dir, silent=False): os.putenv('SALOME_BATCH','0') if args["gui"] : modules_list = modules_list[:] + ["GUI"] - modules_list = modules_list[:] + ["KERNEL"] - for module in modules_list : - if module in modules_root_dir: - module_root_dir = modules_root_dir[module] - 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") - 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") - add_path(os.path.join(module_root_dir,"bin",salome_subdir), - "PATH") - if os.path.exists(os.path.join(module_root_dir, "examples")): - add_path(os.path.join(module_root_dir,"examples"), + if not keepEnvironment: + modules_list = modules_list[:] + ["KERNEL"] + for module in modules_list : + if module in modules_root_dir: + module_root_dir = modules_root_dir[module] + 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") + 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") + add_path(os.path.join(module_root_dir,"bin",salome_subdir), + "PATH") + if os.path.exists(os.path.join(module_root_dir, "examples")): + add_path(os.path.join(module_root_dir,"examples"), + "PYTHONPATH") + pass + add_path(os.path.join(module_root_dir,"bin",salome_subdir), "PYTHONPATH") - pass - add_path(os.path.join(module_root_dir,"bin",salome_subdir), - "PYTHONPATH") - # add lib before site-packages to load script instead of dll if any (win32 platform) - add_path(os.path.join(module_root_dir,get_lib_dir(),salome_subdir), - "PYTHONPATH") - add_path(os.path.join(module_root_dir,get_lib_dir(), - python_version,"site-packages", - salome_subdir), - "PYTHONPATH") - import platform - if platform.machine() == "x86_64": - add_path(os.path.join(module_root_dir,"lib64", + # add lib before site-packages to load script instead of dll if any (win32 platform) + add_path(os.path.join(module_root_dir,get_lib_dir(),salome_subdir), + "PYTHONPATH") + add_path(os.path.join(module_root_dir,get_lib_dir(), 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 by modules from the list - if port: - try: - mod=__import__(module.lower()+"_setenv") - mod.set_env(args) + import platform + if platform.machine() == "x86_64": + add_path(os.path.join(module_root_dir,"lib64", + python_version,"site-packages", + salome_subdir), + "PYTHONPATH") pass - except: + add_path(os.path.join(module_root_dir,get_lib_dir(), + python_version,"site-packages", + salome_subdir, + "shared_modules"), + "PYTHONPATH") + + # set environment by modules from the list + if port: + try: + mod=__import__(module.lower()+"_setenv") + mod.set_env(args) + pass + except: + 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) + if sys.platform == 'win32': + os.environ["SALOMEPATH"]=";".join(modules_root_dir_list) + else: + os.environ["SALOMEPATH"]=":".join(modules_root_dir_list) + pass # set trace environment variable if "SALOME_trace" not in os.environ: @@ -229,17 +231,12 @@ def set_env(args, modules_list, modules_root_dir, silent=False): if args['logger']: os.environ["SALOME_trace"]="with_logger" - # set resources variables if not yet set - - os.environ["CSF_SALOMEDS_ResourcesDefaults"] \ - = os.path.join(modules_root_dir["KERNEL"],"share", - salome_subdir,"resources","kernel") - # ----------------------------------------------------------------------------- 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) + keep_env = not os.getenv('SALOME_PLEASE_SETUP_ENVIRONMENT_AS_BEFORE') + args, modules_list, modules_root_dir = get_config(silent=silent, exeName=exeName, keepEnvironment=keep_env) + set_env(args, modules_list, modules_root_dir, silent=silent, keepEnvironment=keep_env) return args # -----------------------------------------------------------------------------