"""
-import sys, os, string
+import sys, os, time
KEEP_TEMPS = 0
ISCC = r"%s\InnoSetup2Ex\ISCC.exe %s"
AppName = wxPython
AppVerName = wxPython %(VERSION)s for Python %(PYTHONVER)s
OutputBaseFilename = wxPythonWIN32-%(VERSION)s-%(PYVER)s
-AppCopyright = Copyright © 2002 Total Control Software
+AppCopyright = Copyright © 2003 Total Control Software
DefaultDirName = {code:GetInstallDir|c:\DoNotInstallHere}
DefaultGroupName = wxPython %(SHORTVER)s for Python %(PYTHONVER)s
AlwaysCreateUninstallIcon = yes
WizardStyle = modern
UninstallStyle = modern
DisableStartupPrompt = true
-CompressLevel = 9
+Compression = bzip
DirExistsWarning = no
DisableReadyMemo = true
DisableReadyPage = true
;;DisableDirPage = true
-DisableProgramGroupPage = true
+DisableProgramGroupPage = no
DisableAppendDir = true
UsePreviousAppDir = no
UsePreviousGroup = no
LicenseFile = licence\licence.txt
CodeFile = %(IFSFILE)s
+;; WizardDebug = yes
+
;;------------------------------------------------------------
;;[Dirs]
[Files]
Source: "%(SYSDIR)s\MSVCRT.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: sharedfile uninsneveruninstall restartreplace; Components: core
Source: "%(SYSDIR)s\MSVCIRT.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: sharedfile uninsneveruninstall restartreplace; Components: core
+Source: "%(SYSDIR)s\MSVCP60.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: sharedfile uninsneveruninstall restartreplace; Components: core
Source: "%(WXDIR)s\lib\%(WXDLL)s"; DestDir: "{app}\wxPython"; Components: core
%(MSLU)s
Source: "wxPython\wxc.pyd"; DestDir: "{app}\wxPython"; Components: core
-Source: "wxPython\wxc.pyd.manifest"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\gridc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\helpc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\htmlc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\calendarc.pyd"; DestDir: "{app}\wxPython"; Components: core
+Source: "wxPython\wizardc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\glcanvasc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\oglc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\stc_c.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\lib\PyCrust\*.py"; DestDir: "{app}\wxPython\lib\PyCrust"; Components: core
Source: "wxPython\lib\PyCrust\*.txt"; DestDir: "{app}\wxPython\lib\PyCrust"; Components: core
Source: "wxPython\lib\PyCrust\*.ico"; DestDir: "{app}\wxPython\lib\PyCrust"; Components: core
+Source: "wxPython\lib\PyCrust\wxd\*.py"; DestDir: "{app}\wxPython\lib\PyCrust\wxd"; Components: core
+Source: "wxPython\lib\colourchooser\*.py"; DestDir: "{app}\wxPython\lib\colourchooser"; Components: core
+
+%(LOCALE)s
Source: "demo\*.py"; DestDir: "{app}\wxPython\demo"; Components: demo
Source: "demo\*.xml"; DestDir: "{app}\wxPython\demo"; Components: demo
Source: "%(WXDIR)s\docs\htmlhelp\ogl.chm"; DestDir: "{app}\wxPython\docs"; Components: docs
Source: "wxPython\tools\*.py"; DestDir: "{app}\wxPython\tools"; Components: tools
-Source: "wxPython\tools\XRCed\CHANGES"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
-Source: "wxPython\tools\XRCed\TODO"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
-Source: "wxPython\tools\XRCed\README"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
+Source: "wxPython\tools\XRCed\*.txt"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
+Source: "wxPython\tools\XRCed\sawfishrc"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
Source: "wxPython\tools\XRCed\*.py"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
Source: "wxPython\tools\XRCed\*.xrc"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
Source: "wxPython\tools\XRCed\*.ico"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
Source: "scripts\*.bat"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
Source: "scripts\*.py"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
+Source: "scripts\helpviewer"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
Source: "scripts\img2png"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
Source: "scripts\img2py"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
Source: "scripts\img2xpm"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
Source: "scripts\xrced"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
Source: "scripts\pyshell"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
Source: "scripts\pycrust"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
+Source: "scripts\pycwrap"; DestDir: "{code:GetPythonDir}\Scripts"; Components: tools
Source: "samples\doodle\*.py"; DestDir: "{app}\wxPython\samples\doodle"; Components: samples
Source: "samples\doodle\*.txt"; DestDir: "{app}\wxPython\samples\doodle"; Components: samples
Source: "samples\wxProject\*.txt"; DestDir: "{app}\wxPython\samples\wxProject"; Components: samples
Source: "samples\wxProject\*.py"; DestDir: "{app}\wxPython\samples\wxProject"; Components: samples
-Source: "samples\stxview\*.py"; DestDir: "{app}\wxPython\samples\stxview"; Components: samples
-Source: "samples\stxview\*.stx"; DestDir: "{app}\wxPython\samples\stxview"; Components: samples
-Source: "samples\stxview\*.txt"; DestDir: "{app}\wxPython\samples\stxview"; Components: samples
-Source: "samples\stxview\StructuredText\*.py"; DestDir: "{app}\wxPython\samples\stxview\StructuredText"; Components: samples
-Source: "samples\stxview\StructuredText\*.txt"; DestDir: "{app}\wxPython\samples\stxview\StructuredText"; Components: samples
-
Source: "samples\StyleEditor\*.txt"; DestDir: "{app}\wxPython\samples\StyleEditor"; Components: samples
Source: "samples\StyleEditor\*.py"; DestDir: "{app}\wxPython\samples\StyleEditor"; Components: samples
Source: "samples\StyleEditor\*.cfg"; DestDir: "{app}\wxPython\samples\StyleEditor"; Components: samples
Source: "samples\embedded\*.ico"; DestDir: "{app}\wxPython\samples\embedded"; Components: samples
Source: "samples\embedded\*.xpm"; DestDir: "{app}\wxPython\samples\embedded"; Components: samples
+Source: "src\winxp.manifest"; DestDir: "{code:GetPythonDir}"; DestName: "python.exe.manifest"; Components: core
+Source: "src\winxp.manifest"; DestDir: "{code:GetPythonDir}"; DestName: "pythonw.exe.manifest"; Components: core
+
+
;;------------------------------------------------------------
[Run]
;; Recreate the tool scripts to use the paths on the users machine
-Filename: "{code:GetPythonDir}\python.exe"; Parameters: "CreateBatchFiles.py"; WorkingDir: "{code:GetPythonDir}\Scripts"; Components: tools
+Filename: "{code:GetPythonDir}\python.exe"; Parameters: "{code:GetPythonDir}\Lib\compileall.py {app}\wxPython"; Description: "Compile Python .py files to .pyc"; Flags: postinstall; Components: core
+Filename: "{code:GetPythonDir}\python.exe"; Parameters: "CreateBatchFiles.py"; WorkingDir: "{code:GetPythonDir}\Scripts"; Description: "Create batch files for tool scripts"; Flags: postinstall; Components: tools
;;------------------------------------------------------------
Type: files; Name: "{app}\wxPython\lib\mixins\*.pyo";
Type: files; Name: "{app}\wxPython\lib\PyCrust\*.pyc";
Type: files; Name: "{app}\wxPython\lib\PyCrust\*.pyo";
+Type: files; Name: "{app}\wxPython\lib\PyCrust\decor\*.pyc";
+Type: files; Name: "{app}\wxPython\lib\PyCrust\decor\*.pyo";
+Type: files; Name: "{app}\wxPython\lib\PyCrust\wxd\*.pyc";
+Type: files; Name: "{app}\wxPython\lib\PyCrust\wxd\*.pyo";
+Type: files; Name: "{app}\wxPython\lib\colourchooser\*.pyc";
+Type: files; Name: "{app}\wxPython\lib\colourchooser\*.pyo";
Type: files; Name: "{app}\wxPython\tools\*.pyc";
Type: files; Name: "{app}\wxPython\tools\*.pyo";
Type: files; Name: "{app}\wxPython\tools\XRCed\*.pyc";
Type: files; Name: "{app}\wxPython\samples\wxProject\*.pyo";
Type: files; Name: "{app}\wxPython\samples\StyleEditor\*.pyc";
Type: files; Name: "{app}\wxPython\samples\StyleEditor\*.pyo";
-Type: files; Name: "{app}\wxPython\samples\stxview\*.pyc";
-Type: files; Name: "{app}\wxPython\samples\stxview\*.pyo";
-Type: files; Name: "{app}\wxPython\samples\stxview\StructuredText\*.pyc";
-Type: files; Name: "{app}\wxPython\samples\stxview\StructuredText\*.pyo";
Type: files; Name: "{app}\wxPython\samples\frogedit\*.pyc";
Type: files; Name: "{app}\wxPython\samples\frogedit\*.pyo";
+Type: files; Name: "{app}\wxPython\demo\data\*.pyc";
+Type: files; Name: "{app}\wxPython\demo\data\*.pyo";
+Type: files; Name: "{app}\wxPython\demo\dllwidget\*.pyc";
+Type: files; Name: "{app}\wxPython\demo\dllwidget\*.pyo";
+Type: files; Name: "{app}\wxPython\samples\embedded\*.pyc";
+Type: files; Name: "{app}\wxPython\samples\embedded\*.pyo";
+Type: files; Name: "{app}\wxPython\samples\pySketch\*.pyc";
+Type: files; Name: "{app}\wxPython\samples\pySketch\*.pyo";
+
'''
PythonDir : String;
InstallDir : String;
+
function InitializeSetup(): Boolean;
begin
if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
'Software\Python\PythonCore\%(PYTHONVER)s\InstallPath',
'', PythonDir) then begin
- MsgBox('No installation of Python %(PYTHONVER)s found in registry.\nBe sure to enter a pathname that places wxPython\non the PYTHONPATH',
+ MsgBox('No installation of Python %(PYTHONVER)s found in registry.' + #13 +
+ 'Be sure to enter a pathname that places wxPython on the PYTHONPATH',
mbConfirmation, MB_OK);
PythonDir := 'C:\Put a directory on PYTHONPATH here\';
end;
Result := InstallDir;
end;
+
+
+function NextButtonClick(CurPage: Integer): Boolean;
+var
+ FileName: string;
+ ResultCode: Integer;
+begin
+ Result := True;
+ if CurPage <> wpSelectDir then Exit;
+ FileName := WizardDirValue() + '\wxPython\unins000.exe';
+ if FileExists(FileName) then begin
+ ResultCode := MsgBox('A prior wxPython installation was found in this directory. It' + #13 +
+ 'is recommended that it be uninstalled first.' + #13#13 +
+ 'Should I do it?',
+ mbConfirmation, MB_YESNO);
+ if ResultCode = IDYES then begin
+ InstExec(FileName, '/SILENT', WizardDirValue()+'\wxPython', True, False, SW_SHOWNORMAL, ResultCode);
+
+ end;
+ end;
+end;
+
+
begin
end.
"""
-
#----------------------------------------------------------------------
def find_DLLs():
proc.close()
for line in lines:
if line[:6] == " wx":
- WXDLL = string.strip(line)
+ WXDLL = line.strip()
if line[:10] == " python":
PYTHONVER = line[10] + '.' + line[11]
return WXDLL, PYTHONVER
+#----------------------------------------------------------------------
+
+locale_template = 'Source: "%s"; DestDir: "{app}\%s"; Components: core'
+
+def build_locale_string():
+ stringlst = []
+
+ def walk_helper(lst, dirname, files):
+ for f in files:
+ filename = os.path.join(dirname, f)
+ if not os.path.isdir(filename):
+ lst.append( locale_template % (filename, dirname) )
+
+ os.path.walk('wxPython\\locale', walk_helper, stringlst)
+ return '\n'.join(stringlst)
+
+
#----------------------------------------------------------------------
def main():
SYSDIR = r"C:\WINNT\SYSTEM32"
ISSFILE = "__wxPython.iss"
IFSFILE = "__wxPython.ifs"
+ LOCALE = build_locale_string()
if PYTHONVER >= "2.2":
IF22 = r"InstallDir := InstallDir + '\Lib\site-packages';"
else:
IF22 = ""
- if string.find(WXDLL, "h") != -1:
- PYVER = PYVER + "-hybrid"
+ # Starting with 2.3.3 the hybrid build is the release build too, so
+ # no need to label it that way.
+ ##if WXDLL.find("h") != -1:
+ ## PYVER = PYVER + "-hybrid"
MSLU=''
if len(sys.argv) > 1 and sys.argv[1] == "UNICODE=1":
os.system(ISCC % (os.environ['TOOLS'], ISSFILE))
if not KEEP_TEMPS:
+ time.sleep(1)
os.remove(ISSFILE)
os.remove(IFSFILE)