2003-10-01 20:58:06 -04:00
# -*- coding: iso-8859-1 -*-
#----------------------------------------------------------------------
# Name: make_installer.py
# Purpose: A script to create the wxPython windows installer
#
# Author: Robin Dunn
#
# Created: 30-April-2001
# RCS-ID: $Id$
# Copyright: (c) 2003 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------
2001-04-30 14:32:18 -04:00
"""
This script will generate a setup script for InnoSetup and then run it
to make the installer executable . If all goes right the proper versions
of Python and wxWindows ( including hybrid / final settings ) will all be
calculated based on what wxc . pyd imports and an appropriate installer
will be created .
"""
2003-10-18 00:33:02 -04:00
# TODO: Remove the registry entry upon uninstall.
2003-03-25 01:35:27 -05:00
import sys , os , time
2001-04-30 14:32:18 -04:00
KEEP_TEMPS = 0
2002-06-12 21:35:19 -04:00
ISCC = r " %s \ InnoSetup2Ex \ ISCC.exe %s "
2001-04-30 14:32:18 -04:00
#----------------------------------------------------------------------
ISS_Template = r '''
; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ Setup ]
AppName = wxPython
2001-05-23 11:05:41 -04:00
AppVerName = wxPython % ( VERSION ) s for Python % ( PYTHONVER ) s
2002-08-24 17:44:30 -04:00
OutputBaseFilename = wxPythonWIN32 - % ( VERSION ) s - % ( PYVER ) s
2004-01-15 17:26:18 -05:00
AppCopyright = Copyright <EFBFBD> 2004 Total Control Software
2001-11-19 21:30:58 -05:00
DefaultDirName = { code : GetInstallDir | c : \DoNotInstallHere }
2001-04-30 14:32:18 -04:00
DefaultGroupName = wxPython % ( SHORTVER ) s for Python % ( PYTHONVER ) s
AlwaysCreateUninstallIcon = yes
2003-10-01 20:58:06 -04:00
AdminPrivilegesRequired = no
2001-04-30 14:32:18 -04:00
OutputDir = dist
WizardStyle = modern
UninstallStyle = modern
DisableStartupPrompt = true
2003-03-25 01:35:27 -05:00
Compression = bzip
2001-04-30 14:32:18 -04:00
DirExistsWarning = no
DisableReadyMemo = true
DisableReadyPage = true
; ; DisableDirPage = true
2003-03-25 01:35:27 -05:00
DisableProgramGroupPage = no
2001-04-30 14:32:18 -04:00
DisableAppendDir = true
2001-05-23 11:05:41 -04:00
UsePreviousAppDir = no
UsePreviousGroup = no
2001-04-30 14:32:18 -04:00
2004-01-15 17:26:18 -05:00
UninstallFilesDir = { app } \wx
2001-04-30 14:32:18 -04:00
AppPublisherURL = http : / / wxPython . org /
LicenseFile = licence \licence . txt
CodeFile = % ( IFSFILE ) s
2004-01-22 18:57:09 -05:00
; ; WizardDebug = yes
2001-04-30 14:32:18 -04:00
; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ Components ]
Name : core ; Description : " wxPython modules and library " ; Types : full compact custom ; Flags : fixed
Name : docs ; Description : " Documentation " ; Types : full
Name : demo ; Description : " Demo application " ; Types : full
Name : samples ; Description : " Sample applications " ; Types : full
; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ Files ]
2004-01-15 17:26:18 -05:00
Source : " %(SYSDIR)s \ MSVCRT.dll " ; DestDir : " { code:GetPythonDir} " ; CopyMode : alwaysskipifsameorolder ; Flags : uninsneveruninstall ; Components : core
Source : " %(SYSDIR)s \ MSVCIRT.dll " ; DestDir : " { code:GetPythonDir} " ; CopyMode : alwaysskipifsameorolder ; Flags : uninsneveruninstall ; Components : core
Source : " %(SYSDIR)s \ MSVCP60.dll " ; DestDir : " { code:GetPythonDir} " ; CopyMode : alwaysskipifsameorolder ; Flags : uninsneveruninstall ; Components : core
Source : " %(WXDIR)s \ BIN \ wx* %(WXDLLVER)s *.dll " ; DestDir : " {app} \ wx " ; Components : core
2002-03-26 20:10:28 -05:00
% ( MSLU ) s
2004-01-15 17:26:18 -05:00
Source : " wx \ _core.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _gdi.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _windows.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _controls.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _misc.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _calendar.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _grid.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _html.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _wizard.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _gizmos.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _glcanvas.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _iewin.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _ogl.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _stc.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ _xrc.pyd " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ *.py " ; DestDir : " {app} \ wx " ; Components : core
Source : " wx \ lib \ *.py " ; DestDir : " {app} \ wx \ lib " ; Components : core
Source : " wx \ lib \ *.wdr " ; DestDir : " {app} \ wx \ lib " ; Components : core
Source : " wx \ lib \ colourchooser \ *.py " ; DestDir : " {app} \ wx \ lib \ colourchooser " ; Components : core
Source : " wx \ lib \ editor \ *.py " ; DestDir : " {app} \ wx \ lib \ editor " ; Components : core
Source : " wx \ lib \ editor \ *.txt " ; DestDir : " {app} \ wx \ lib \ editor " ; Components : core
Source : " wx \ lib \ mixins \ *.py " ; DestDir : " {app} \ wx \ lib \ mixins " ; Components : core
Source : " wx \ py \ *.py " ; DestDir : " {app} \ wx \ py " ; Components : core
Source : " wx \ py \ *.txt " ; DestDir : " {app} \ wx \ py " ; Components : core
Source : " wx \ py \ *.ico " ; DestDir : " {app} \ wx \ py " ; Components : core
Source : " wx \ py \ *.png " ; DestDir : " {app} \ wx \ py " ; Components : core
Source : " wx \ py \t ests \ *.py " ; DestDir : " {app} \ wx \ py \t ests " ; Components : core
Source : " wx \ py \ wxd \ *.py " ; DestDir : " {app} \ wx \ py \ wxd " ; Components : core
Source : " wx \t ools \ *.py " ; DestDir : " {app} \ wx \t ools " ; Components : core
Source : " wx \t ools \ XRCed \ *.txt " ; DestDir : " {app} \ wx \t ools \ XRCed " ; Components : core
Source : " wx \t ools \ XRCed \ sawfishrc " ; DestDir : " {app} \ wx \t ools \ XRCed " ; Components : core
Source : " wx \t ools \ XRCed \ *.py " ; DestDir : " {app} \ wx \t ools \ XRCed " ; Components : core
Source : " wx \t ools \ XRCed \ *.xrc " ; DestDir : " {app} \ wx \t ools \ XRCed " ; Components : core
Source : " wx \t ools \ XRCed \ *.ico " ; DestDir : " {app} \ wx \t ools \ XRCed " ; Components : core
Source : " wx \t ools \ XRCed \ *.png " ; DestDir : " {app} \ wx \t ools \ XRCed " ; Components : core
Source : " wx \t ools \ XRCed \ *.sh " ; DestDir : " {app} \ wx \t ools \ XRCed " ; Components : core
Source : " wx \t ools \ XRCed \ src-images \ *.png " ; DestDir : " {app} \ wx \t ools \ XRCed \ src-images " ; Components : core
Source : " wxPython \ *.py " ; DestDir : " {app} \ wxPython " ; Components : core
Source : " wxPython \ lib \ *.py " ; DestDir : " {app} \ wxPython \ lib " ; Components : core
Source : " wxPython \ lib \ colourchooser \ *.py " ; DestDir : " {app} \ wxPython \ lib \ colourchooser " ; Components : core
Source : " wxPython \ lib \ editor \ *.py " ; DestDir : " {app} \ wxPython \ lib \ editor " ; Components : core
Source : " wxPython \ lib \ mixins \ *.py " ; DestDir : " {app} \ wxPython \ lib \ mixins " ; Components : core
Source : " wxPython \t ools \ *.py " ; DestDir : " {app} \ wxPython \t ools " ; Components : core
2003-07-02 19:13:10 -04:00
2003-03-25 01:35:27 -05:00
% ( LOCALE ) s
2001-04-30 14:32:18 -04:00
2004-01-15 17:26:18 -05:00
Source : " demo \ *.py " ; DestDir : " {app} \ wx \ demo " ; Components : demo
Source : " demo \ *.xml " ; DestDir : " {app} \ wx \ demo " ; Components : demo
Source : " demo \ *.txt " ; DestDir : " {app} \ wx \ demo " ; Components : demo
Source : " demo \ *.ico " ; DestDir : " {app} \ wx \ demo " ; Components : demo
Source : " demo \b itmaps \ *.bmp " ; DestDir : " {app} \ wx \ demo \b itmaps " ; Components : demo
Source : " demo \b itmaps \ *.gif " ; DestDir : " {app} \ wx \ demo \b itmaps " ; Components : demo
Source : " demo \b itmaps \ *.jpg " ; DestDir : " {app} \ wx \ demo \b itmaps " ; Components : demo
Source : " demo \b itmaps \ *.png " ; DestDir : " {app} \ wx \ demo \b itmaps " ; Components : demo
Source : " demo \b itmaps \ *.ico " ; DestDir : " {app} \ wx \ demo \b itmaps " ; Components : demo
Source : " demo \b mp_source \ *.gif " ; DestDir : " {app} \ wx \ demo \b mp_source " ; Components : demo
Source : " demo \b mp_source \ *.bmp " ; DestDir : " {app} \ wx \ demo \b mp_source " ; Components : demo
Source : " demo \b mp_source \ *.jpg " ; DestDir : " {app} \ wx \ demo \b mp_source " ; Components : demo
Source : " demo \b mp_source \ *.png " ; DestDir : " {app} \ wx \ demo \b mp_source " ; Components : demo
Source : " demo \b mp_source \ *.ico " ; DestDir : " {app} \ wx \ demo \b mp_source " ; Components : demo
Source : " demo \ data \ *.htm " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.html " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.py " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.png " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.bmp " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.dat " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.txt " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.wav " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.wdr " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.xrc " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
Source : " demo \ data \ *.gif " ; DestDir : " {app} \ wx \ demo \ data " ; Components : demo
; ; Source : " demo \ dllwidget \ *.cpp " ; DestDir : " {app} \ wx \ demo \ dllwidget " ; Components : demo
; ; Source : " demo \ dllwidget \ *.py " ; DestDir : " {app} \ wx \ demo \ dllwidget " ; Components : demo
; ; Source : " demo \ dllwidget \ Makefile " ; DestDir : " {app} \ wx \ demo \ dllwidget " ; Components : demo
; ; Source : " demo \ dllwidget \ makefile.* " ; DestDir : " {app} \ wx \ demo \ dllwidget " ; Components : demo
Source : " licence \ *.txt " ; DestDir : " {app} \ wx \ docs \ licence " ; Components : core
Source : " %(WXDIR)s \ docs \ htmlhelp \ wx.chm " ; DestDir : " {app} \ wx \ docs " ; Components : docs
Source : " %(WXDIR)s \ docs \ htmlhelp \ ogl.chm " ; DestDir : " {app} \ wx \ docs " ; Components : docs
Source : " docs \ README.txt " ; DestDir : " {app} \ wx \ docs " ; Flags : isreadme ; Components : core
Source : " docs \ *.txt " ; DestDir : " {app} \ wx \ docs " ; Components : docs
Source : " docs \ *.css " ; DestDir : " {app} \ wx \ docs " ; Components : docs
Source : " docs \ *.html " ; DestDir : " {app} \ wx \ docs " ; Components : docs
Source : " docs \ *.conf " ; DestDir : " {app} \ wx \ docs " ; Components : docs
Source : " docs \ screenshots \ *.png " ; DestDir : " {app} \ wx \ docs \ screenshots " ; Components : docs
Source : " docs \ xml \ *.xml " ; DestDir : " {app} \ wx \ docs \ xml " ; Components : docs
2003-07-02 19:13:10 -04:00
Source : " scripts \ *.bat " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ *.py " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ helpviewer " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ img2png " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ img2py " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ img2xpm " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ pyalacarte " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ pyalamode " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ pyshell " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ pycrust " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ pywrap " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
Source : " scripts \ xrced " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
2004-01-22 18:57:09 -05:00
Source : " %(WXDIR)s \ BIN \ wxrc.exe " ; DestDir : " { code:GetPythonDir} \ Scripts " ; Components : core
2001-08-28 15:21:45 -04:00
2004-01-15 17:26:18 -05:00
Source : " samples \ doodle \ *.py " ; DestDir : " {app} \ wx \ samples \ doodle " ; Components : samples
Source : " samples \ doodle \ *.txt " ; DestDir : " {app} \ wx \ samples \ doodle " ; Components : samples
Source : " samples \ doodle \ sample.ddl " ; DestDir : " {app} \ wx \ samples \ doodle " ; Components : samples
Source : " samples \ doodle \ superdoodle.iss " ; DestDir : " {app} \ wx \ samples \ doodle " ; Components : samples
Source : " samples \ embedded \ *.py " ; DestDir : " {app} \ wx \ samples \ embedded " ; Components : samples
Source : " samples \ embedded \ *.cpp " ; DestDir : " {app} \ wx \ samples \ embedded " ; Components : samples
Source : " samples \ embedded \ *.txt " ; DestDir : " {app} \ wx \ samples \ embedded " ; Components : samples
Source : " samples \ embedded \ *.vc " ; DestDir : " {app} \ wx \ samples \ embedded " ; Components : samples
Source : " samples \ embedded \ *.unx " ; DestDir : " {app} \ wx \ samples \ embedded " ; Components : samples
Source : " samples \ embedded \ *.ico " ; DestDir : " {app} \ wx \ samples \ embedded " ; Components : samples
Source : " samples \ embedded \ *.xpm " ; DestDir : " {app} \ wx \ samples \ embedded " ; Components : samples
Source : " samples \ embedded \ *.rc " ; DestDir : " {app} \ wx \ samples \ embedded " ; Components : samples
Source : " samples \f rogedit \ *.py " ; DestDir : " {app} \ wx \ samples \f rogedit " ; Components : samples
2001-04-30 14:32:18 -04:00
2004-01-15 17:26:18 -05:00
Source : " samples \ hangman \ *.py " ; DestDir : " {app} \ wx \ samples \ hangman " ; Components : samples
2001-08-28 15:21:45 -04:00
2004-01-15 17:26:18 -05:00
Source : " samples \ pySketch \ *.py " ; DestDir : " {app} \ wx \ samples \ pySketch " ; Components : samples
Source : " samples \ pySketch \ images \ *.bmp " ; DestDir : " {app} \ wx \ samples \ pySketch \ images " ; Components : samples
2001-09-06 17:19:48 -04:00
2004-01-15 17:26:18 -05:00
Source : " samples \ simple \ *.py " ; DestDir : " {app} \ wx \ samples \ simple " ; Components : samples
2001-04-30 14:32:18 -04:00
2004-01-15 17:26:18 -05:00
Source : " samples \ StyleEditor \ *.txt " ; DestDir : " {app} \ wx \ samples \ StyleEditor " ; Components : samples
Source : " samples \ StyleEditor \ *.py " ; DestDir : " {app} \ wx \ samples \ StyleEditor " ; Components : samples
Source : " samples \ StyleEditor \ *.cfg " ; DestDir : " {app} \ wx \ samples \ StyleEditor " ; Components : samples
2003-07-02 19:13:10 -04:00
2004-01-15 17:26:18 -05:00
Source : " samples \ wx_examples \b asic \ *.py " ; DestDir : " {app} \ wx \ samples \ wx_examples \b asic " ; Components : samples
Source : " samples \ wx_examples \ hello \ *.py " ; DestDir : " {app} \ wx \ samples \ wx_examples \ hello " ; Components : samples
Source : " samples \ wx_examples \ hello \ *.jpg " ; DestDir : " {app} \ wx \ samples \ wx_examples \ hello " ; Components : samples
2002-05-02 00:45:47 -04:00
2004-01-15 17:26:18 -05:00
Source : " samples \ wxProject \ *.txt " ; DestDir : " {app} \ wx \ samples \ wxProject " ; Components : samples
Source : " samples \ wxProject \ *.py " ; DestDir : " {app} \ wx \ samples \ wxProject " ; Components : samples
2003-07-02 19:13:10 -04:00
2004-01-15 17:26:18 -05:00
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
2003-03-25 01:35:27 -05:00
2002-08-08 16:14:13 -04:00
; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ Run ]
2003-07-02 19:13:10 -04:00
; ; Compile the . py files
Filename : " { code:GetPythonDir} \ python.exe " ; Parameters : " { code:GetPythonDir} \ Lib \ compileall.py {app} \ wxPython {app} \ wx " ; Description : " Compile Python .py files to .pyc " ; Flags : postinstall ; Components : core
2002-08-08 16:14:13 -04:00
; ; Recreate the tool scripts to use the paths on the users machine
2003-07-02 19:13:10 -04:00
Filename : " { code:GetPythonDir} \ python.exe " ; Parameters : " CreateBatchFiles.py " ; WorkingDir : " { code:GetPythonDir} \ Scripts " ; Description : " Create batch files for tool scripts " ; Flags : postinstall ; Components : core
2002-08-08 16:14:13 -04:00
2001-04-30 14:32:18 -04:00
; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ Icons ]
2004-01-15 17:26:18 -05:00
Name : " {group} \ Run the wxPython DEMO " ; Filename : " { code:GetPythonDir} \ pythonw.exe " ; WorkingDir : " {app} \ wx \ demo " ; Parameters : " demo.py " ; IconFilename : " {app} \ wx \ demo \ wxpdemo.ico " ; Components : core
Name : " {group} \ PyCrust " ; Filename : " { code:GetPythonDir} \ pythonw.exe " ; WorkingDir : " c: \" ; Parameters: " { code : GetPythonDir } \Scripts \pycrust " ; IconFilename: " { app } \wx \py \PyCrust . ico " ; Components: core
Name : " {group} \ PyShell " ; Filename : " { code:GetPythonDir} \ pythonw.exe " ; WorkingDir : " c: \" ; Parameters: " { code : GetPythonDir } \Scripts \pyshell " ; IconFilename: " { app } \wx \py \PyCrust . ico " ; Components: core
Name : " {group} \ PyAlaMode " ; Filename : " { code:GetPythonDir} \ pythonw.exe " ; WorkingDir : " c: \" ; Parameters: " { code : GetPythonDir } \Scripts \pyalamode " ; IconFilename: " { app } \wx \py \PyCrust . ico " ; Components: core
Name : " {group} \ PyAlaCarte " ; Filename : " { code:GetPythonDir} \ pythonw.exe " ; WorkingDir : " c: \" ; Parameters: " { code : GetPythonDir } \Scripts \pyalacarte " ; IconFilename: " { app } \wx \py \PyCrust . ico " ; Components: core
Name : " {group} \ Resource Editor " ; Filename : " { code:GetPythonDir} \ pythonw.exe " ; WorkingDir : " c: \" ; Parameters: " { code : GetPythonDir } \Scripts \xrced " ; IconFilename: " { app } \wx \tools \XRCed \xrced . ico " ; Components: core
Name : " {group} \ Sample Apps " ; Filename : " {app} \ wx \ samples " ; Components : samples
Name : " {group} \ wxWindows Reference " ; Filename : " {app} \ wx \ docs \ wx.chm " ; Components : docs
Name : " {group} \ wxOGL Reference " ; Filename : " {app} \ wx \ docs \ ogl.chm " ; Components : docs
Name : " {group} \ licence.txt " ; Filename : " {app} \ wx \ docs \ licence \ licence.txt " ; Components : core
Name : " {group} \ README.txt " ; Filename : " {app} \ wx \ docs \ README.txt " ; Components : docs
Name : " {group} \ CHANGES.txt " ; Filename : " {app} \ wx \ docs \ CHANGES.txt " ; Components : docs
Name : " {group} \ Migration Guide " ; Filename : " {app} \ wx \ docs \ MigrationGuide.html " ; Components : docs
Name : " {group} \ Other wxPython Docs " ; Filename : " {app} \ wx \ docs \ wxPythonDocs.html " ; Components : docs
2001-04-30 14:32:18 -04:00
; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ UninstallDelete ]
2003-07-02 19:13:10 -04:00
Type : files ; Name : " {app} \ wx \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ *.pyo " ;
2004-01-15 17:26:18 -05:00
Type : files ; Name : " {app} \ wx \ *.pyd " ;
2003-07-02 19:13:10 -04:00
Type : files ; Name : " {app} \ wx \ lib \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ lib \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ lib \ colourchooser \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ lib \ colourchooser \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ lib \ editor \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ lib \ editor \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ lib \ mixins \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ lib \ mixins \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ py \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ py \ *.pyo " ;
2004-01-15 17:26:18 -05:00
Type : files ; Name : " {app} \ wx \ py \t ests \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ py \t ests \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ py \ wxd \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ py \ wxd \ *.pyo " ;
2003-07-02 19:13:10 -04:00
Type : files ; Name : " {app} \ wx \t ools \ *.pyc " ;
Type : files ; Name : " {app} \ wx \t ools \ *.pyo " ;
Type : files ; Name : " {app} \ wx \t ools \ XRCed \ *.pyc " ;
Type : files ; Name : " {app} \ wx \t ools \ XRCed \ *.pyo " ;
2004-01-15 17:26:18 -05:00
Type : files ; Name : " {app} \ wx \ demo \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ demo \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ demo \ data \ showTips " ;
Type : files ; Name : " {app} \ wx \ demo \ data \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ demo \ data \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ demo \ dllwidget \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ demo \ dllwidget \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \ doodle \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \ doodle \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \ embedded \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \ embedded \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \f rogedit \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \f rogedit \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \ hangman \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \ hangman \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \ hangman \ *.txt " ;
Type : files ; Name : " {app} \ wx \ samples \ pySketch \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \ pySketch \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \ simple \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \ simple \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \ StyleEditor \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \ StyleEditor \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \ wx_examples \b asic \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \ wx_examples \b asic \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \ wx_examples \ hello \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \ wx_examples \ hello \ *.pyo " ;
Type : files ; Name : " {app} \ wx \ samples \ wxProject \ *.pyc " ;
Type : files ; Name : " {app} \ wx \ samples \ wxProject \ *.pyo " ;
2003-07-02 19:13:10 -04:00
2004-01-15 17:26:18 -05:00
Type : files ; Name : " {app} \ wxPython \ *.pyc " ;
Type : files ; Name : " {app} \ wxPython \ *.pyo " ;
Type : files ; Name : " {app} \ wxPython \ lib \ *.pyc " ;
Type : files ; Name : " {app} \ wxPython \ lib \ *.pyo " ;
Type : files ; Name : " {app} \ wxPython \ lib \ colourchooser \ *.pyc " ;
Type : files ; Name : " {app} \ wxPython \ lib \ colourchooser \ *.pyo " ;
Type : files ; Name : " {app} \ wxPython \ lib \ editor \ *.pyc " ;
Type : files ; Name : " {app} \ wxPython \ lib \ editor \ *.pyo " ;
Type : files ; Name : " {app} \ wxPython \ lib \ mixins \ *.pyc " ;
Type : files ; Name : " {app} \ wxPython \ lib \ mixins \ *.pyo " ;
Type : files ; Name : " {app} \ wxPython \t ools \ *.pyc " ;
Type : files ; Name : " {app} \ wxPython \t ools \ *.pyo " ;
2002-08-28 13:49:58 -04:00
2001-04-30 14:32:18 -04:00
'''
#----------------------------------------------------------------------
2001-08-28 15:21:45 -04:00
2001-04-30 14:32:18 -04:00
IFS_Template = r """
program Setup ;
var
2003-10-01 20:58:06 -04:00
PythonDir : String ;
2001-11-19 21:30:58 -05:00
InstallDir : String ;
2001-04-30 14:32:18 -04:00
2003-03-25 01:35:27 -05:00
2001-04-30 14:32:18 -04:00
function InitializeSetup ( ) : Boolean ;
begin
2003-10-01 20:58:06 -04:00
( * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * )
( * Figure out what to use as a default installation dir * )
2001-04-30 14:32:18 -04:00
if not RegQueryStringValue ( HKEY_LOCAL_MACHINE ,
' Software \ Python \ PythonCore \ %(PYTHONVER)s \ InstallPath ' ,
' ' , PythonDir ) then begin
2001-07-27 23:07:18 -04:00
if not RegQueryStringValue ( HKEY_CURRENT_USER ,
' Software \ Python \ PythonCore \ %(PYTHONVER)s \ InstallPath ' ,
' ' , PythonDir ) then begin
2003-03-25 01:35:27 -05:00
MsgBox ( ' No installation of Python %(PYTHONVER)s found in registry. ' + #13 +
' Be sure to enter a pathname that places wxPython on the PYTHONPATH ' ,
2001-07-27 23:07:18 -04:00
mbConfirmation , MB_OK ) ;
2001-09-04 02:35:05 -04:00
PythonDir := ' C: \ Put a directory on PYTHONPATH here \' ;
2001-08-28 15:21:45 -04:00
end ;
end ;
2001-11-19 21:30:58 -05:00
InstallDir := PythonDir ;
% ( IF22 ) s
2003-10-01 20:58:06 -04:00
2004-01-15 17:26:18 -05:00
Result := True ;
2003-10-01 20:58:06 -04:00
end ;
2001-04-30 14:32:18 -04:00
function GetPythonDir ( Default : String ) : String ;
begin
Result := PythonDir ;
end ;
2003-10-01 20:58:06 -04:00
2001-11-19 21:30:58 -05:00
function GetInstallDir ( Default : String ) : String ;
begin
Result := InstallDir ;
end ;
2003-03-25 01:35:27 -05:00
2004-01-15 17:26:18 -05:00
function UninstallOld ( FileName : String ) : Boolean ;
2003-03-25 01:35:27 -05:00
var
ResultCode : Integer ;
begin
2004-01-15 17:26:18 -05:00
Result := False ;
2003-03-25 01:35:27 -05:00
if FileExists ( FileName ) then begin
2004-01-15 17:26:18 -05:00
Result := True ;
2003-03-25 01:35:27 -05:00
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 ;
2004-01-15 17:26:18 -05:00
function NextButtonClick ( CurPage : Integer ) : Boolean ;
var
FileName : string ;
ResultCode : Integer ;
begin
Result := True ;
if CurPage < > wpSelectDir then Exit ;
if not UninstallOld ( WizardDirValue ( ) + ' \ wxPython \ unins000.exe ' ) then
UninstallOld ( WizardDirValue ( ) + ' \ wx \ unins000.exe ' ) ;
end ;
2001-04-30 14:32:18 -04:00
begin
end .
"""
#----------------------------------------------------------------------
def find_DLLs ( ) :
2004-01-15 17:26:18 -05:00
WXDLLVER = PYTHONVER = None
2001-04-30 14:32:18 -04:00
2004-01-15 17:26:18 -05:00
proc = os . popen ( r " dumpbin /imports wx \ _core.pyd " , " r " )
2001-04-30 14:32:18 -04:00
lines = proc . readlines ( )
proc . close ( )
for line in lines :
2004-01-15 17:26:18 -05:00
if line . startswith ( " wxbase " ) :
WXDLLVER = line [ 10 : 14 ]
2001-04-30 14:32:18 -04:00
2004-01-15 17:26:18 -05:00
if line . startswith ( " python " ) :
2001-04-30 14:32:18 -04:00
PYTHONVER = line [ 10 ] + ' . ' + line [ 11 ]
2004-01-15 17:26:18 -05:00
#if WXDLLVER and PYTHONVER:
# return WXDLLVER, PYTHONVER
return WXDLLVER , PYTHONVER
2001-04-30 14:32:18 -04:00
2003-03-25 01:35:27 -05:00
#----------------------------------------------------------------------
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 )
2003-10-01 20:58:06 -04:00
def get_system_dir ( ) :
for p in [ r " C: \ WINNT \ SYSTEM32 " ,
r " C: \ WINDOWS \ SYSTEM32 " ,
] :
if os . path . exists ( p ) :
return p
raise IOError , " System dir not found "
2003-03-25 01:35:27 -05:00
2001-04-30 14:32:18 -04:00
#----------------------------------------------------------------------
def main ( ) :
verglob = { }
2004-01-15 17:26:18 -05:00
execfile ( " wx/__version__.py " , verglob )
2001-04-30 14:32:18 -04:00
2004-01-15 17:26:18 -05:00
VERSION = verglob [ " VERSION_STRING " ]
2001-04-30 14:32:18 -04:00
SHORTVER = VERSION [ : 3 ]
2004-01-15 17:26:18 -05:00
WXDLLVER , PYTHONVER = find_DLLs ( )
2001-04-30 14:32:18 -04:00
PYVER = " Py " + PYTHONVER [ 0 ] + PYTHONVER [ 2 ]
WXDIR = os . environ [ " WXWIN " ]
WXPYDIR = os . path . join ( WXDIR , " wxPython " )
2003-10-01 20:58:06 -04:00
SYSDIR = get_system_dir ( )
2001-04-30 14:32:18 -04:00
ISSFILE = " __wxPython.iss "
IFSFILE = " __wxPython.ifs "
2003-03-25 01:35:27 -05:00
LOCALE = build_locale_string ( )
2001-04-30 14:32:18 -04:00
2004-01-15 17:26:18 -05:00
print """ Building Win32 installer for wxPython:
VERSION = % ( VERSION ) s
SHORTVER = % ( SHORTVER ) s
WXDLLVER = % ( WXDLLVER ) s
PYTHONVER = % ( PYTHONVER ) s
PYVER = % ( PYVER ) s
WXDIR = % ( WXDIR ) s
WXPYDIR = % ( WXPYDIR ) s
SYSDIR = % ( SYSDIR ) s
""" % vars()
2001-11-19 21:30:58 -05:00
if PYTHONVER > = " 2.2 " :
IF22 = r " InstallDir := InstallDir + ' \ Lib \ site-packages ' ; "
else :
IF22 = " "
2001-04-30 14:32:18 -04:00
2002-08-24 21:53:43 -04:00
# Starting with 2.3.3 the hybrid build is the release build too, so
# no need to label it that way.
2003-03-25 01:35:27 -05:00
##if WXDLL.find("h") != -1:
2002-08-24 21:53:43 -04:00
## PYVER = PYVER + "-hybrid"
2001-04-30 14:32:18 -04:00
2002-03-26 16:55:33 -05:00
MSLU = ' '
2002-03-26 20:10:28 -05:00
if len ( sys . argv ) > 1 and sys . argv [ 1 ] == " UNICODE=1 " :
2004-01-15 17:26:18 -05:00
MSLU = r ' Source: " %(WXDIR)s \ BIN \ unicows.dll " ; DestDir: " { code:GetPythonDir} " ; Components: core ' % vars ( )
2002-03-26 16:55:33 -05:00
2001-04-30 14:32:18 -04:00
f = open ( ISSFILE , " w " )
f . write ( ISS_Template % vars ( ) )
f . close ( )
f = open ( IFSFILE , " w " )
f . write ( IFS_Template % vars ( ) )
f . close ( )
2002-06-12 21:35:19 -04:00
os . system ( ISCC % ( os . environ [ ' TOOLS ' ] , ISSFILE ) )
2001-04-30 14:32:18 -04:00
if not KEEP_TEMPS :
2003-03-25 01:35:27 -05:00
time . sleep ( 1 )
2001-04-30 14:32:18 -04:00
os . remove ( ISSFILE )
os . remove ( IFSFILE )
#----------------------------------------------------------------------
if __name__ == " __main__ " :
main ( )
#----------------------------------------------------------------------