From 8063c3c8ae8000293ddbbb19d238f7fa77229937 Mon Sep 17 00:00:00 2001 From: Anthony Geay Date: Tue, 12 Jan 2021 08:29:40 +0100 Subject: [PATCH] [EDF22374] : osmesa usage on poor graphcal capabilities laptops --- bin/appli_gen.py | 2 +- bin/appliskel/CMakeLists.txt | 1 + bin/appliskel/salome | 27 ++------------------ bin/appliskel/salome_common.py | 45 ++++++++++++++++++++++++++++++++++ bin/appliskel/salome_mesa | 32 +++--------------------- 5 files changed, 53 insertions(+), 54 deletions(-) create mode 100644 bin/appliskel/salome_common.py diff --git a/bin/appli_gen.py b/bin/appli_gen.py index 245e25dae..d35b3339d 100755 --- a/bin/appli_gen.py +++ b/bin/appli_gen.py @@ -288,7 +288,7 @@ def install(prefix, config_file, verbose=0): # Copy salome / salome_mesa scripts: - for scripts in ('salome', 'salome_mesa'): + for scripts in ('salome', 'salome_mesa', 'salome_common.py'): salome_script = open(os.path.join(appliskel_dir, scripts)).read() salome_file = os.path.join(home_dir, scripts) try: diff --git a/bin/appliskel/CMakeLists.txt b/bin/appliskel/CMakeLists.txt index 0d61b14b6..247ca59cb 100644 --- a/bin/appliskel/CMakeLists.txt +++ b/bin/appliskel/CMakeLists.txt @@ -35,6 +35,7 @@ SET(SCRIPTS .salome_run # this is the Python launcher (without .py extension to avoid conflicts when importing salome python package) salome # this is the Python wrapper (without .py extension to avoid conflicts when importing salome python package) salome_mesa # this is the Python wrapper using MESA (work around display issue) + salome_common.py salome_starter.py .salome-completion.sh ) diff --git a/bin/appliskel/salome b/bin/appliskel/salome index 7016dc506..2c408be42 100755 --- a/bin/appliskel/salome +++ b/bin/appliskel/salome @@ -18,31 +18,8 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -import os -import subprocess +import salome_common import sys -MODULES = [] - - -def main(args): - ''' Load modules then launch salome - ''' - if MODULES: - env_modules = MODULES[:] - env_modules_option = "--with-env-modules=" - env_modules_l = [x for x in args if x.startswith(env_modules_option)] - if env_modules_l: - env_modules += env_modules_l[-1][len(env_modules_option):].split(',') - args = [x for x in args if not x.startswith(env_modules_option)] - env_modules_option += "%s" % ','.join(env_modules) - args.append(env_modules_option) - - appliPath = os.path.dirname(os.path.realpath(__file__)) - os.environ["ROOT_SALOME_INSTALL"]=appliPath - proc = subprocess.Popen([os.path.join(appliPath, '.salome_run')] + args, close_fds=True) - out, err = proc.communicate() - sys.exit(proc.returncode) - if __name__ == "__main__": - main(sys.argv[1:]) + salome_common.main(sys.argv[1:]) diff --git a/bin/appliskel/salome_common.py b/bin/appliskel/salome_common.py new file mode 100644 index 000000000..058649430 --- /dev/null +++ b/bin/appliskel/salome_common.py @@ -0,0 +1,45 @@ + #! /usr/bin/env python3 +# Copyright (C) 2021 CEA/DEN, EDF R&D +# +# 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. +# +# 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 +import subprocess +import sys + +MODULES = [] + + +def main(args): + ''' Load modules then launch salome + ''' + if MODULES: + env_modules = MODULES[:] + env_modules_option = "--with-env-modules=" + env_modules_l = [x for x in args if x.startswith(env_modules_option)] + if env_modules_l: + env_modules += env_modules_l[-1][len(env_modules_option):].split(',') + args = [x for x in args if not x.startswith(env_modules_option)] + env_modules_option += "%s" % ','.join(env_modules) + args.append(env_modules_option) + + appliPath = os.path.dirname(os.path.realpath(__file__)) + os.environ["ROOT_SALOME_INSTALL"]=appliPath + proc = subprocess.Popen([os.path.join(appliPath, '.salome_run')] + args, close_fds=True) + out, err = proc.communicate() + sys.exit(proc.returncode) diff --git a/bin/appliskel/salome_mesa b/bin/appliskel/salome_mesa index ad58c9283..1c05f0867 100644 --- a/bin/appliskel/salome_mesa +++ b/bin/appliskel/salome_mesa @@ -27,35 +27,11 @@ # discussion of the issue, EDF Redmine issue #22374. # -import os -import subprocess +import salome_common import sys -MODULES = [] - - -def main(args): - ''' Load modules then launch salome - ''' - if MODULES: - env_modules = MODULES[:] - env_modules_option = "--with-env-modules=" - env_modules_l = [x for x in args if x.startswith(env_modules_option)] - if env_modules_l: - env_modules += env_modules_l[-1][len(env_modules_option):].split(',') - args = [x for x in args if not x.startswith(env_modules_option)] - env_modules_option += "%s" % ','.join(env_modules) - args.append(env_modules_option) - - # Activate MESA rendering (see ...) +if __name__ == "__main__": + import os os.environ["XLIB_SKIP_ARGB_VISUALS"]="1" os.environ["MESA_GL_VERSION_OVERRIDE"]="4.5" - - appliPath = os.path.dirname(os.path.realpath(__file__)) - os.environ["ROOT_SALOME_INSTALL"]=appliPath - proc = subprocess.Popen([os.path.join(appliPath, '.salome_run')] + args, close_fds=True) - out, err = proc.communicate() - sys.exit(proc.returncode) - -if __name__ == "__main__": - main(sys.argv[1:]) + salome_common.main(sys.argv[1:]) -- 2.39.2