IF(EXISTS ${GUI_ROOT_DIR})
LIST(APPEND CMAKE_MODULE_PATH "${GUI_ROOT_DIR}/adm_local/cmake_files")
FIND_PACKAGE(SalomeGUI REQUIRED)
- SALOME_GUI_WITH_CORBA() #remove this line if you don't need GUI module builded with CORBA
- #remove unnecessary options from this list (see SALOME_GUI_MODE() macro description)
- SALOME_GUI_MODE(SALOME_USE_SALOMEOBJECT SALOME_USE_OCCVIEWER SALOME_USE_VTKVIEWER SALOME_USE_PYCONSOLE
- OPTIONAL SALOME_USE_PLOT2DVIEWER SALOME_USE_GLVIEWER SALOME_USE_GRAPHICSVIEW
- SALOME_USE_QXGRAPHVIEWER SALOME_USE_PVVIEWER SALOME_USE_PYVIEWER
- )
+ FULL_GUI(TRUE) # check whether GUI builded in full mode and with CORBA
ADD_DEFINITIONS(${GUI_DEFINITIONS})
INCLUDE_DIRECTORIES(${GUI_INCLUDE_DIRS})
ELSE(EXISTS ${GUI_ROOT_DIR})
</message>
<message>
<source>APP_VERSION</source>
- <translation>Vmaster</translation>
+ <translation>V7.6.0</translation>
</message>
<message>
<source>ABOUT_LICENSE</source>
</message>
<message>
<source>ABOUT_VERSION</source>
- <translation>Version master</translation>
+ <translation>Version 7.6.0</translation>
</message>
<message>
<source>ABOUT_TITLE</source>
</message>
<message>
<source>APP_VERSION</source>
- <translation>Vmaster</translation>
+ <translation>V7.6.0</translation>
</message>
<message>
<source>ABOUT_LICENSE</source>
</message>
<message>
<source>ABOUT_VERSION</source>
- <translation>Version master</translation>
+ <translation>Version 7.6.0</translation>
</message>
<message>
<source>ABOUT_TITLE</source>
</message>
<message>
<source>APP_VERSION</source>
- <translation>Vmaster</translation>
+ <translation>V7.6.0</translation>
</message>
<message>
<source>ABOUT_LICENSE</source>
</message>
<message>
<source>ABOUT_VERSION</source>
- <translation>Version master</translation>
+ <translation>Version 7.6.0</translation>
</message>
<message>
<source>ABOUT_TITLE</source>
from salomeContextUtils import SalomeContextException
def usage():
+ #exeName = os.path.splitext(os.path.basename(__file__))[0]
+
msg = '''\
Usage: salome [command] [options] [--config=<file,folder,...>]
test Run SALOME tests.
info Display some information about SALOME
help Show this message
+ coffee Yes! SALOME can also make coffee!!
If no command is given, default to start.
Command options:
================
Use salome <command> --help to show help on command ; available for commands:
- start, shell, connect, test, info.
+ start, shell, test.
--config=<file,folder,...>
==========================
See usage for details on commands.
"""
def _startSalome(self, args):
- import os
- import sys
try:
- from setenv import add_path
+ import os
absoluteAppliPath = os.getenv('ABSOLUTE_APPLI_PATH')
+ import sys
path = os.path.realpath(os.path.join(absoluteAppliPath, "bin", "salome"))
- add_path(path, "PYTHONPATH")
- path = os.path.realpath(os.path.join(absoluteAppliPath, "bin", "salome", "appliskel"))
- add_path(path, "PYTHONPATH")
-
+ if not path in sys.path:
+ sys.path[:0] = [path]
except:
pass
sys.path[:0] = pythonpath
#
- def _runAppli(self, args=None):
- if args is None:
- args = []
+ def _runAppli(self, args=[]):
# Initialize SALOME environment
sys.argv = ['runSalome'] + args
import setenv
return proc.communicate()
#
- def _runSession(self, args=None):
- if args is None:
- args = []
+ def _runSession(self, args=[]):
sys.argv = ['runSession'] + args
import runSession
params, args = runSession.configureSession(args, exe="salome shell")
return runSession.runSession(params, args)
#
- def _runConsole(self, args=None):
- if args is None:
- args = []
+ def _runConsole(self, args=[]):
# Initialize SALOME environment
- sys.argv = ['runConsole']
+ sys.argv = ['runConsole'] + args
import setenv
setenv.main(True)
- import runConsole
- return runConsole.connect(args)
+ cmd = ["python", "-c", "import runConsole\nrunConsole.connect()" ]
+ proc = subprocess.Popen(cmd, shell=False, close_fds=True)
+ return proc.communicate()
#
- def _kill(self, args=None):
- if args is None:
- args = []
+ def _kill(self, args=[]):
ports = args
if not ports:
print "Port number(s) not provided to command: salome kill <port(s)>"
pass
#
- def _runTests(self, args=None):
- if args is None:
- args = []
+ def _runTests(self, args=[]):
sys.argv = ['runTests']
import setenv
setenv.main(True)
return runTests.runTests(args, exe="salome test")
#
- def _showInfo(self, args=None):
- if args is None:
- args = []
-
- usage = "Usage: salome info [options]"
- epilog = """\n
-Display some information about SALOME.\n
-Available options are:
- -p,--ports Show list of busy ports (running SALOME instances).
- -v,--version Show running SALOME version.
- -h,--help Show this message.
-"""
- if not args:
- args = ["--version"]
-
- if "-h" in args or "--help" in args:
- print usage + epilog
- return
-
- if "-p" in args or "--ports" in args:
- import PortManager
- ports = PortManager.getBusyPorts()
- print "SALOME instances are running on ports:", ports
- if ports:
- print "Last started instance on port %s"%ports[-1]
-
- if "-v" in args or "--version" in args:
- print "Running with python", platform.python_version()
- self._runAppli(["--version"])
+ def _showInfo(self, unused=None):
+ print "Running with python", platform.python_version()
+ self._runAppli(["--version"])
#
def _usage(self, unused=None):
return __listDirectory(envdDir)
#
-def __getEnvironmentFileNames(args, optionPrefix, checkExistence):
- # special case: extra configuration/environment files are provided by user
- # Search for command-line argument(s) <optionPrefix>=file1,file2,..., filen
- # Search for command-line argument(s) <optionPrefix>=dir1,dir2,..., dirn
- configArgs = [ str(x) for x in args if str(x).startswith(optionPrefix) ]
+def getConfigFileNames(args, checkExistence=False):
+ # special case: configuration files are provided by user
+ # Search for command-line argument(s) --config=file1,file2,..., filen
+ # Search for command-line argument(s) --config=dir1,dir2,..., dirn
+ configOptionPrefix = "--config="
+ configArgs = [ str(x) for x in args if str(x).startswith(configOptionPrefix) ]
- args = [ x for x in args if not x.startswith(optionPrefix) ]
- allLists = [ x.replace(optionPrefix, '') for x in configArgs ]
+ if len(configArgs) == 0:
+ return __getConfigFileNamesDefault(), args, []
+
+ args = [ x for x in args if not x.startswith(configOptionPrefix) ]
+ allLists = [ x.replace(configOptionPrefix, '') for x in configArgs ]
configFileNames = []
unexisting = []
return configFileNames, args, unexisting
#
-def __validate_pair(ob):
- try:
- if not (len(ob) == 2):
- #print "Unexpected result:", ob
- raise ValueError
- except:
- return False
- return True
-#
-def __get_environment_from_batch_command(env_cmd, initial=None):
- """
- Take a command (either a single command or list of arguments)
- and return the environment created after running that command.
- Note that if the command must be a batch file or .cmd file, or the
- changes to the environment will not be captured.
-
- If initial is supplied, it is used as the initial environment passed
- to the child process.
- """
- #if not isinstance(env_cmd, (list, tuple)):
- # env_cmd = [env_cmd]
- # construct the command that will alter the environment
- #env_cmd = subprocess.list2cmdline(env_cmd)
- # create a tag so we can tell in the output when the proc is done
- tag = 'Done running command'
- # construct a command to do accomplish this
- cmd = '{env_cmd} && echo "{tag}"'.format(**vars())
-
- # launch the process
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, env=initial, shell=True)
- # parse the output sent to stdout
- lines = proc.stdout
- # consume whatever output occurs until the tag is reached
- #consume(itertools.takewhile(lambda l: tag not in l, lines))
- # define a way to handle each KEY=VALUE line
- handle_line = lambda l: l.rstrip().split('=',1)
- # parse key/values into pairs
- #pairs = map(handle_line, lines)
- pairs = []
- cpt = 0
- while True:
- line = lines.readline()
- cpt = cpt+1
- if tag in line or cpt > 1000:
- break
- if line:
- pairs.append(line.rstrip().split('=',1))
- # make sure the pairs are valid
- valid_pairs = filter(__validate_pair, pairs)
- # construct a dictionary of the pairs
- result = dict(valid_pairs)
- # let the process finish
- proc.communicate()
- return result
-#
-def __subtract(ref, dic):
- result = {}
- for key,val in ref.items():
- if not dic.has_key(key):
- result[key] = val
- else:
- # compare values types
- if (type(dic[key]) != type(val)):
- result[key] = val
- else:
- # compare values
- if isinstance(val, basestring):
- tolist1 = dic[key].split(os.pathsep)
- tolist2 = val.split(os.pathsep)
- diff = list(set(tolist2)-set(tolist1))
- if diff:
- result[key] = os.pathsep.join(diff)
- else:
- result[key] = val
-
- return result
-#
-
-def getConfigFileNames(args, checkExistence=False):
- configOptionPrefix = "--config="
- configArgs = [ str(x) for x in args if str(x).startswith(configOptionPrefix) ]
- if len(configArgs) == 0:
- configFileNames, unexist1 = __getConfigFileNamesDefault(), []
- else:
- # get configuration filenames
- configFileNames, args, unexist1 = __getEnvironmentFileNames(args, configOptionPrefix, checkExistence)
-
- # get extra environment
- extraEnvFileNames, args, unexist2 = __getEnvironmentFileNames(args, "--extra_env=", checkExistence)
- before = __get_environment_from_batch_command("env")
- after = {}
- for filename in extraEnvFileNames:
- after.update(__get_environment_from_batch_command(filename))
- pass
-
- extraEnv = __subtract(after,before)
- return configFileNames, extraEnv, args, unexist1+unexist2
-#
-
def __getScriptPath(scriptName, searchPathList):
scriptName = os.path.expanduser(scriptName)
if os.path.isabs(scriptName):
return json.JSONEncoder.default(self, obj)
#
-def getShortAndExtraArgs(args=None):
- if args is None:
- args = []
+def getShortAndExtraArgs(args=[]):
try:
pos = args.index("--") # raise a ValueError if not found
short_args = args[:pos]
#
# Return an array of ScriptAndArgs objects
-def getScriptsAndArgs(args=None, searchPathList=None):
- if args is None:
- args = []
+def getScriptsAndArgs(args=[], searchPathList=None):
short_args, extra_args = getShortAndExtraArgs(args)
args = short_args