/[ascend]/trunk/pygtk/ascend.in
ViewVC logotype

Annotation of /trunk/pygtk/ascend.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2034 - (hide annotations) (download)
Tue May 12 07:38:55 2009 UTC (13 years, 10 months ago) by jpye
File size: 5091 byte(s)
Hopefully this will fix bug 392, need to test.
1 johnpye 858 #!@PYTHON@
2 jpye 1615 # ^ python path substituted here is not depended-upon in Windows
3 johnpye 440
4 johnpye 1172 import os.path, sys, platform
5 johnpye 440
6 johnpye 1096 restart = 0
7    
8 jpye 1463 # This script handles restarting ascend if it's invoked without the full
9     # complement of env vars. You can override values used by this script
10     # by setting the appropriate env vars before this script is run.
11 johnpye 1096
12 jpye 1463 # Note that as well as env vars, ASCEND is also controllable using the
13     # .ascend.ini file in the user's home directory.
14    
15     #-----------------------------------------------------------------------
16     # Get locations of the installed files. On windows, these are defined in
17     # in the registry. On other systems, these are defined at compile time
18     # by @VARNAME@ substitution.
19    
20 johnpye 1172 if platform.system()=="Windows":
21 jpye 1463 import _winreg as wreg
22     k = wreg.OpenKey(wreg.HKEY_LOCAL_MACHINE, "SOFTWARE\ASCEND")
23 jpye 1551 print k
24 jpye 1463
25 jpye 2025 # on Windows, we should be able to *assume* relative paths...
26    
27 jpye 1463 # for some reason, QueryValue doesn't work on Py 2.4, need to use QueryValueEx.
28 jpye 1518 INSTALL_SOLVERS,t = wreg.QueryValueEx(k,"INSTALL_SOLVERS")
29     INSTALL_MODELS,t = wreg.QueryValueEx(k,"INSTALL_MODELS")
30 jpye 1463 INSTALL_LIB,t = wreg.QueryValueEx(k,"INSTALL_LIB")
31     INSTALL_ASCDATA,t = wreg.QueryValueEx(k,"INSTALL_ASCDATA")
32     GTKLIBS,t = wreg.QueryValueEx(k,"GTKLIBS");
33 jpye 1518 DEFAULT_ASCENDLIBRARY="%s;%s" % (INSTALL_SOLVERS,INSTALL_MODELS)
34 jpye 1463
35 jpye 2027 INSTALL_PYTHON = os.path.join(INSTALL_ASCDATA,"python")
36 jpye 1463 PYVERSION = "@PYVERSION@"
37 jpye 1551 PYTHON=os.path.join(sys.prefix,"pythonw.exe")
38 jpye 1463
39     print "PYTHON =",PYTHON
40 johnpye 1172 SEP=";"
41 jpye 1463 LDPATHVAR = 'PATH'
42 johnpye 1172 else:
43 jpye 2025
44     # FIXME for possible case of relative paths...
45    
46 jpye 1463 INSTALL_LIB="@INSTALL_LIB@"
47     INSTALL_ASCDATA="@INSTALL_ASCDATA@"
48 jpye 2034 INSTALL_MODELS = "@INSTALL_MODELS@"
49     INSTALL_SOLVERS = "@INSTALL_SOLVERS@"
50 jpye 2016 INSTALL_PYTHON = "@INSTALL_PYTHON@"
51 jpye 1463 PYTHON="@PYTHON@"
52     DEFAULT_ASCENDLIBRARY="""@DEFAULT_ASCENDLIBRARY@"""
53 johnpye 1172 SEP=":"
54 jpye 1463 LDPATHVAR = 'LD_LIBRARY_PATH'
55     GTKLIBS = None # assume the GTK will be in the standard library path
56 johnpye 1172
57 jpye 1463 #-----------------------------------------------------------------------
58    
59     if os.environ.get(LDPATHVAR):
60     LDPATH = os.environ.get(LDPATHVAR).split(SEP)
61 jpye 1365 else:
62 jpye 1463 LDPATH = []
63 jpye 1365
64 johnpye 1097 if not os.environ.get('ASC_GDB'):
65     # restarting messes up GDB so don't allow it
66 johnpye 1096
67 jpye 1463 if platform.system()=="Windows":
68     # Put INSTALL_LIB then GTK at start of path
69     if GTKLIBS in LDPATH:
70     LDPATH.remove(GTKLIBS)
71     LDPATH=[INSTALL_LIB,GTKLIBS]+LDPATH
72     os.environ[LDPATHVAR] = SEP.join(LDPATH)
73     restart = 1
74     elif INSTALL_LIB != "/usr/lib" and not INSTALL_LIB in LDPATH:
75     # don't worry about GTK location; just ensure that LDPATH includes INSTALL_LIB
76     LDPATH = [INSTALL_LIB] + LDPATH
77     os.environ[LDPATHVAR] = SEP.join(LDPATH)
78     restart = 1
79 johnpye 1096
80 jpye 1615 # if ASCENDLIBRARY has been specified, make sure it's including the Model Library
81 johnpye 1172 if os.environ.get('ASCENDLIBRARY'):
82     envmodels = [os.path.abspath(i) for i in os.environ['ASCENDLIBRARY'].split(SEP)]
83 jpye 1614 if not INSTALL_MODELS in envmodels:
84     envmodels.append(INSTALL_MODELS)
85 johnpye 1172 os.environ['ASCENDLIBRARY'] = SEP.join(envmodels)
86     restart = 1
87 jpye 1615
88     # if ASCENDSOLVERS has been specified, make sure it includes the standard solvers
89 jpye 1614 if os.environ.get('ASCENDSOLVERS'):
90     envsolvers = [os.path.abspath(i) for i in os.environ['ASCENDSOLVERS'].split(SEP)]
91     if not INSTALL_SOLVERS in envsolvers:
92     envsolvers.append(INSTALL_SOLVERS)
93     os.environ['ASCENDSOLVERS'] = SEP.join(envsolvers)
94 jpye 1504 restart = 1
95 johnpye 1172
96 jpye 1615 # don't need to restart process on Windows as env vars update immediately
97     if restart and platform.system()!="Windows":
98 johnpye 1097 print "Restarting with corrected environment..."
99 jpye 1616 if os.environ.get(LDPATHVAR):
100     print " %s = %s" % (LDPATHVAR,os.environ.get(LDPATHVAR))
101     if os.environ.get('ASCENDLIBRARY'):
102     print " ASCENDLIBRARY = %s" % os.environ.get('ASCENDLIBRARY')
103     if os.environ.get('ASCENDSOLVERS'):
104     print " ASCENDSOLVERS = %s" % os.environ.get('ASCENDSOLVERS')
105 johnpye 1097 script = os.path.join(sys.path[0],"ascend")
106 jpye 1463 print "PYTHON =",PYTHON
107     print "script =",script
108 jpye 1615 os.execve(PYTHON,[script] + sys.argv, os.environ)
109 johnpye 1096
110     print "Running with..."
111 jpye 1463 print " %s = %s" % (LDPATHVAR, os.environ.get(LDPATHVAR))
112 jpye 1467 print " sys.path = %s" % sys.path
113 johnpye 1097 print " argv = %s" % sys.argv
114 johnpye 1096
115 johnpye 858 if os.environ.get('ASCENDLIBRARY'):
116     ASCENDLIBRARY = os.environ.get('ASCENDLIBRARY')
117 jpye 1615 print " ASCENDLIBRARY = %s" % ASCENDLIBRARY
118 johnpye 440
119 jpye 1615 if os.environ.get('ASCENDSOLVERS'):
120     ASCENDSOLVERS = os.environ.get('ASCENDSOLVERS')
121     print " ASCENDSOLVERS = %s" % ASCENDLIBRARY
122    
123 johnpye 1096 print "sys.path[0] = %s" % sys.path[0]
124 johnpye 440
125 jpye 2016 if not INSTALL_PYTHON in sys.path:
126     print "Adding INSTALL_PYTHON=%s to python path" % INSTALL_PYTHON
127     sys.path.append(INSTALL_PYTHON)
128    
129 johnpye 858 if os.environ.get('OSTYPE')=='cygwin':
130     print "CYGWIN..."
131     elif os.environ.get('OSTYPE')=='msys':
132     print "MSYS..."
133 johnpye 440
134 jpye 1358 if os.environ.get('ASC_GDB'):
135     args = sys.argv
136     args.pop(0)
137 jpye 2033 cmd = ["gdb","--args","python",os.path.join(INSTALL_PYTHON,"gtkbrowser.py")]+args
138 jpye 1358 print cmd
139     os.execv("/usr/bin/gdb",cmd)
140 johnpye 858 else:
141 jpye 1358 import ascpy
142 jpye 1463 olddir = os.getcwd()
143     os.chdir(INSTALL_ASCDATA)
144 jpye 1358 from gtkbrowser import *
145 jpye 1463 os.chdir(olddir)
146 jpye 1616 B = Browser(
147     librarypath=os.environ.get('ASCENDLIBRARY')
148     ,assetspath=os.path.join(INSTALL_ASCDATA,"glade")
149     )
150 jpye 1358 B.run()

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22