#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2015 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
class InterpServer(Server):
def __init__(self,args):
self.args=args
- if sys.platform != "win32":
- env_ld_library_path=['env', 'LD_LIBRARY_PATH=' + os.getenv("LD_LIBRARY_PATH")]
- self.CMD=['xterm', '-e']+ env_ld_library_path + ['python']
- else:
+ if sys.platform == "win32":
self.CMD=['cmd', '/c', 'start cmd.exe', '/K', 'python']
+ elif sys.platform == "darwin":
+ env_ld_library_path=['env', 'DYLD_LIBRARY_PATH=' + os.getenv("LD_LIBRARY_PATH")]
+ self.CMD=['xterm', '-e'] + env_ld_library_path + ['python']
+ else:
+ env_ld_library_path=['env', 'LD_LIBRARY_PATH=' + os.getenv("LD_LIBRARY_PATH")]
+ self.CMD=['xterm', '-e'] + env_ld_library_path + ['python']
def run(self):
global process_id
command = self.CMD
print "INTERPSERVER::command = ", command
- if sys.platform == "win32":
- import win32pm
- pid = win32pm.spawnpid( string.join(command, " "),'-nc' )
- else:
- pid = os.spawnvp(os.P_NOWAIT, command[0], command)
+ import subprocess
+ pid = subprocess.Popen(command).pid
process_id[pid]=self.CMD
self.PID = pid
# ---
class ContainerCPPServer(Server):
- def __init__(self,args):
+ def __init__(self,args,with_gui=False):
self.args=args
self.initArgs()
self.CMD=['SALOME_Container','FactoryServer']
+ if not with_gui and self.args["valgrind_session"]:
+ l = ["valgrind"]
+ val = os.getenv("VALGRIND_OPTIONS")
+ if val:
+ l += val.split()
+ pass
+ self.CMD = l + self.CMD
+ pass
# ---
list_modules.reverse()
self.SCMD2+=['--modules (%s)' % ":".join(list_modules)]
pass
+ if self.args.has_key('language'):
+ self.SCMD2+=['--language=%s' % self.args['language']]
pass
def setpath(self,modules_list,modules_root_dir):
#
if ('cppContainer' in args['standalone']) | (args["gui"] == 0) :
- myServer=ContainerCPPServer(args)
+ myServer=ContainerCPPServer(args, with_gui=args["gui"]!=0)
myServer.run()
if sys.platform == "win32":
clt.waitNS("/Containers/" + theComputer + "/FactoryServer")