- SCMD1=['SALOME_Session_Server']
- SCMD2=[]
- if 'registry' in args['embedded']:
- SCMD1+=['--with','Registry','(','--salome_session','theSession',')']
- if 'moduleCatalog' in args['embedded']:
- SCMD1+=['--with','ModuleCatalog','(','-common']
- SCMD2+=['-personal','${HOME}/Salome/resources/CatalogModulePersonnel.xml',')']
- if 'study' in args['embedded']:
- SCMD2+=['--with','SALOMEDS','(',')']
- if 'cppContainer' in args['embedded']:
- SCMD2+=['--with','Container','(','FactoryServer',')']
-
- def setpath(self,modules_list):
- cata_path=[]
- list_modules = modules_list[:]
- list_modules.reverse()
- for module in ["KERNEL"] + list_modules:
- module_root_dir=modules_root_dir[module]
- module_cata=module+"Catalog.xml"
- print " ", module_cata
- cata_path.extend(glob.glob(os.path.join(module_root_dir,"share",args['appname'],"resources",module_cata)))
- if 'moduleCatalog' in args['embedded']:
- self.CMD=self.SCMD1 + [string.join(cata_path,':')] + self.SCMD2
- else:
- self.CMD=self.SCMD1 + self.SCMD2
+ def __init__(self,args):
+ self.args = args.copy()
+ # Bug 11512 (Problems with runSalome --xterm on Mandrake and Debian Sarge)
+ #self.args['xterm']=0
+ #
+ self.initArgs()
+ self.SCMD1=['SALOME_Session_Server']
+ self.SCMD2=[]
+ if 'registry' in self.args['embedded']:
+ self.SCMD1+=['--with','Registry',
+ '(','--salome_session','theSession',')']
+ if 'moduleCatalog' in self.args['embedded']:
+ self.SCMD1+=['--with','ModuleCatalog','(','-common']
+ home_dir=os.getenv('HOME')
+ if home_dir is not None:
+ self.SCMD2+=['-personal',os.path.join(home_dir,'Salome/resources/CatalogModulePersonnel.xml')]
+ self.SCMD2+=[')']
+ if 'study' in self.args['embedded']:
+ self.SCMD2+=['--with','SALOMEDS','(',')']
+ if 'cppContainer' in self.args['embedded']:
+ self.SCMD2+=['--with','Container','(','FactoryServer',')']
+ if 'SalomeAppEngine' in self.args['embedded']:
+ self.SCMD2+=['--with','SalomeAppEngine','(',')']
+
+ if 'cppContainer' in self.args['standalone'] or 'cppContainer' in self.args['embedded']:
+ self.SCMD2+=['CPP']
+ if 'pyContainer' in self.args['standalone'] or 'pyContainer' in self.args['embedded']:
+ self.SCMD2+=['PY']
+ if self.args['gui']:
+ session_gui = True
+ if self.args.has_key('session_gui'):
+ session_gui = self.args['session_gui']
+ if session_gui:
+ self.SCMD2+=['GUI']
+ if self.args['splash']:
+ self.SCMD2+=['SPLASH']
+ pass
+ if self.args['study_hdf'] is not None:
+ self.SCMD2+=['--study-hdf=%s'%self.args['study_hdf']]
+ pass
+ pass
+ pass
+ if self.args['noexcepthandler']:
+ self.SCMD2+=['noexcepthandler']
+ if self.args.has_key('user_config'):
+ self.SCMD2+=['--resources=%s'%self.args['user_config']]
+ if self.args.has_key('modules'):
+ self.SCMD2+=['--modules (%s)'%":".join(self.args['modules'])]
+ if self.args.has_key('pyscript') and len(self.args['pyscript']) > 0:
+ self.SCMD2+=['--pyscript=%s'%(",".join(self.args['pyscript']))]
+
+ def setpath(self,modules_list,modules_root_dir):
+ cata_path=[]
+ list_modules = modules_list[:]
+ list_modules.reverse()
+ if self.args["gui"] :
+ list_modules = ["KERNEL", "GUI"] + list_modules
+ else :
+ list_modules = ["KERNEL"] + list_modules
+ for module in list_modules:
+ module_root_dir=modules_root_dir[module]
+ module_cata=module+"Catalog.xml"
+ #print " ", module_cata
+ if os.path.exists(os.path.join(module_root_dir,
+ "share",setenv.salome_subdir,
+ "resources",module.lower(),
+ module_cata)):
+ cata_path.extend(
+ glob.glob(os.path.join(module_root_dir,"share",
+ setenv.salome_subdir,"resources",
+ module.lower(),module_cata)))
+ else:
+ cata_path.extend(
+ glob.glob(os.path.join(module_root_dir,"share",
+ setenv.salome_subdir,"resources",
+ module_cata)))
+ pass
+ if (self.args["gui"]) & ('moduleCatalog' in self.args['embedded']):
+ #Use '::' instead ":" because drive path with "D:\" is invalid on windows platform
+ #self.CMD=self.SCMD1 + ['\"']+[string.join(cata_path,'\"::\"')] + ['\"'] + self.SCMD2
+ self.CMD=self.SCMD1 + ['\"' + string.join(cata_path,'\"::\"') + '\"'] + self.SCMD2
+ else:
+ self.CMD=self.SCMD1 + self.SCMD2
+ if self.args.has_key('test'):
+ self.CMD+=['-test'] + self.args['test']
+ elif self.args.has_key('play'):
+ self.CMD+=['-play'] + self.args['play']
+
+ if self.args["gdb_session"] or self.args["ddd_session"]:
+ f = open(".gdbinit4salome", "w")
+ f.write("set args ")
+ args = " ".join(self.CMD[1:])
+ args = args.replace("(", "\(")
+ args = args.replace(")", "\)")
+ f.write(args)
+ f.write("\n")
+ f.close()
+ if self.args["ddd_session"]:
+ self.CMD = ["ddd", "--command=.gdbinit4salome", self.CMD[0]]
+ elif self.args["gdb_session"]:
+ self.CMD = ["xterm", "-e", "gdb", "--command=.gdbinit4salome", self.CMD[0]]
+ pass
+ pass
+
+# ---
+
+class LauncherServer(Server):
+ def __init__(self,args):
+ self.args=args
+ self.initArgs()
+ self.SCMD1=['SALOME_LauncherServer']
+ self.SCMD2=[]
+ if args["gui"] :
+ if 'registry' in self.args['embedded']:
+ self.SCMD1+=['--with','Registry',
+ '(','--salome_session','theSession',')']
+ if 'moduleCatalog' in self.args['embedded']:
+ self.SCMD1+=['--with','ModuleCatalog','(','-common']
+ self.SCMD2+=['-personal',
+ '${HOME}/Salome/resources/CatalogModulePersonnel.xml',')']
+ if 'study' in self.args['embedded']:
+ self.SCMD2+=['--with','SALOMEDS','(',')']
+ if 'cppContainer' in self.args['embedded']:
+ self.SCMD2+=['--with','Container','(','FactoryServer',')']
+
+ def setpath(self,modules_list,modules_root_dir):
+ cata_path=[]
+ list_modules = modules_list[:]
+ list_modules.reverse()
+ if self.args["gui"] :
+ list_modules = ["GUI"] + list_modules
+ for module in ["KERNEL"] + list_modules:
+ if modules_root_dir.has_key(module):
+ module_root_dir=modules_root_dir[module]
+ module_cata=module+"Catalog.xml"
+ #print " ", module_cata
+ if os.path.exists(os.path.join(module_root_dir,
+ "share",setenv.salome_subdir,
+ "resources",module.lower(),
+ module_cata)):
+ cata_path.extend(
+ glob.glob(os.path.join(module_root_dir,"share",
+ setenv.salome_subdir,"resources",
+ module.lower(),module_cata)))
+ else:
+ cata_path.extend(
+ glob.glob(os.path.join(module_root_dir,"share",
+ setenv.salome_subdir,"resources",
+ module_cata)))
+ pass
+ pass
+ if (self.args["gui"]) & ('moduleCatalog' in self.args['embedded']):
+ self.CMD=self.SCMD1 + [string.join(cata_path,':')] + self.SCMD2
+ else:
+ self.CMD=self.SCMD1 + self.SCMD2