Switched to InnoSetup for MSW distributions

Other distrib stuff


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2001-04-30 18:32:18 +00:00
parent a51fb6427c
commit d7ec656498
5 changed files with 279 additions and 6 deletions

View File

@ -42,12 +42,7 @@ is one) which is essentially a list of strings containing info about
each pixel. It is then pickled and optionally compressed and written
to a Python source file along with functions to convert it to either a
wxBitmap or a wxImage. See wxPython/demo/images.py for examples, and
wxPython/Tools/img2py.py for the implementation. Unfortunatly, there
is no SaveFile implemented for the XPM image type in wxGTK so the
tools to create the embedded image files don't work on wxGTK, only on
wxMSW. The img2xpm.py tool could probably be hacked to use external
tools, or PIL, to do the XPM conversion on wxGTK. If somebody does
this please send me a patch.
wxPython/Tools/img2py.py for the implementation.
Fixed wxStyledTextCtrl to be much faster on wxGTK. There was some
experimental code that got left in place that ended up causing way too
@ -56,7 +51,9 @@ many refreshes.
A couple hacks in my_distutils.py so wxPython can be built with the
distutils that comes with Python 2.1.
Added a ton of missing methods for wxPrintData.
Switched to InnoSetup for MSW distributions.

View File

@ -14,6 +14,11 @@ include demo/bitmaps/*.ico
include demo/bitmaps/*.gif
include demo/bitmaps/*.png
include demo/bitmaps/*.jpg
include demo/bmp_source/*.bmp
include demo/bmp_source/*.ico
include demo/bmp_source/*.gif
include demo/bmp_source/*.png
include demo/bmp_source/*.jpg
include demo/README.txt
include demo/*.xml
include demo/data/*.png
@ -32,6 +37,7 @@ include samples/stxview/*.txt
include samples/stxview/*.py
include samples/stxview/*.stx
include samples/stxview/StructuredText/*.py
include samples/stxview/StructuredText/*.txt
include samples/wxProject/*.txt
include samples/wxProject/*.py

View File

@ -33,6 +33,11 @@ elseiff "%1" == "i" then
shift
set CMD=%SETUP% build install
rem "r" --> make installer
elseiff "%1" == "r" then
shift
set CMD=%PYTHON% distrib\make_installer.py
rem "s" --> source dist
elseiff "%1" == "s" then
shift

View File

@ -0,0 +1,264 @@
"""
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.
"""
import os, string
#----------------------------------------------------------------------
KEEP_TEMPS = 0
#----------------------------------------------------------------------
ISS_Template = r'''
;;------------------------------------------------------------
[Setup]
AppName = wxPython
AppVerName = wxPython %(VERSION)s
OutputBaseFilename = wxPython-%(VERSION)s-%(PYVER)s
AppCopyright = Copyright © 2001 Total Control Software
DefaultDirName = {code:GetPythonDir|c:\DoNotInstallHere}
DefaultGroupName = wxPython %(SHORTVER)s for Python %(PYTHONVER)s
AlwaysCreateUninstallIcon = yes
;; SourceDir = .
;; OutputDir is relative to SourceDir
OutputDir = dist
WizardStyle = modern
UninstallStyle = modern
DisableStartupPrompt = true
CompressLevel = 9
DirExistsWarning = no
DisableReadyMemo = true
DisableReadyPage = true
;;DisableDirPage = true
DisableProgramGroupPage = true
DisableAppendDir = true
UninstallFilesDir = {app}\wxPython
AppPublisherURL = http://wxPython.org/
LicenseFile = licence\licence.txt
CodeFile = %(IFSFILE)s
;;------------------------------------------------------------
;;[Dirs]
;;Name: "{app}\"
;;------------------------------------------------------------
[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
Name: tools; Description: "Tools"; Types: full
;;------------------------------------------------------------
[Files]
Source: "%(SYSDIR)s\MSVCRT.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: sharedfile uninsneveruninstall; Components: core
Source: "%(SYSDIR)s\MSVCIRT.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: sharedfile uninsneveruninstall; Components: core
Source: "%(WXDIR)s\lib\%(WXDLL)s"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\wxc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\gridc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\htmlc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\utilsc.pyd"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\calendarc.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\*.py"; DestDir: "{app}\wxPython"; Components: core
Source: "wxPython\lib\*.py"; DestDir: "{app}\wxPython\lib"; Components: core
Source: "wxPython\lib\editor\*.py"; DestDir: "{app}\wxPython\lib\editor"; Components: core
Source: "wxPython\lib\editor\*.txt"; DestDir: "{app}\wxPython\lib\editor"; Components: core
Source: "demo\*.py"; DestDir: "{app}\wxPython\demo"; Components: demo
Source: "demo\*.xml"; DestDir: "{app}\wxPython\demo"; Components: demo
Source: "demo\*.txt"; DestDir: "{app}\wxPython\demo"; Components: demo
Source: "demo\bitmaps\*.gif"; DestDir: "{app}\wxPython\demo\bitmaps"; Components: demo
Source: "demo\bitmaps\*.bmp"; DestDir: "{app}\wxPython\demo\bitmaps"; Components: demo
Source: "demo\bitmaps\*.jpg"; DestDir: "{app}\wxPython\demo\bitmaps"; Components: demo
Source: "demo\bitmaps\*.png"; DestDir: "{app}\wxPython\demo\bitmaps"; Components: demo
Source: "demo\bitmaps\*.ico"; DestDir: "{app}\wxPython\demo\bitmaps"; Components: demo
Source: "demo\data\*.htm"; DestDir: "{app}\wxPython\demo\data"; Components: demo
Source: "demo\data\*.html"; DestDir: "{app}\wxPython\demo\data"; Components: demo
Source: "demo\data\*.py"; DestDir: "{app}\wxPython\demo\data"; Components: demo
Source: "demo\data\*.png"; DestDir: "{app}\wxPython\demo\data"; Components: demo
Source: "demo\data\*.bmp"; DestDir: "{app}\wxPython\demo\data"; Components: demo
Source: "demo\data\*.i"; DestDir: "{app}\wxPython\demo\data"; Components: demo
Source: "demo\data\*.h"; DestDir: "{app}\wxPython\demo\data"; Components: demo
Source: "demo\data\*.txt"; DestDir: "{app}\wxPython\demo\data"; Components: demo
Source: "README.txt"; DestDir: "{app}\wxPython\docs"; Flags: isreadme; Components: core
Source: "CHANGES.txt"; DestDir: "{app}\wxPython\docs"; Components: core
Source: "licence\*.txt"; DestDir: "{app}\wxPython\docs\licence"; Components: core
Source: "%(WXDIR)s\docs\htmlhelp\wx.chm"; DestDir: "{app}\wxPython\docs"; Components: docs
Source: "%(WXDIR)s\docs\htmlhelp\ogl.chm"; DestDir: "{app}\wxPython\docs"; Components: docs
Source: "tools\*.py"; DestDir: "{app}\wxPython\tools"; 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\doodle\sample.ddl"; DestDir: "{app}\wxPython\samples\doodle"; Components: samples
Source: "samples\doodle\superdoodle.iss"; 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
;;------------------------------------------------------------
[Icons]
Name: "{group}\Run the DEMO"; Filename: "{code:GetPythonDir}\pythonw.exe"; WorkingDir: "{app}\wxPython\demo"; Parameters: "demo.py";
Name: "{group}\wxWindows Referece"; Filename: "{app}\wxPython\docs\wx.chm";
Name: "{group}\wxOGL Referece"; Filename: "{app}\wxPython\docs\ogl.chm";
Name: "{group}\licence.txt"; Filename: "{app}\wxPython\docs\licence\licence.txt";
Name: "{group}\README.txt"; Filename: "{app}\wxPython\docs\README.txt";
Name: "{group}\CHANGES.txt"; Filename: "{app}\wxPython\docs\CHANGES.txt";
Name: "{group}\Sample Apps"; Filename: "{app}\wxPython\samples"; Components: samples
;;Name: "{group}\Uninstall wxPython"; Filename: "{app}\wxPython\unins000.exe"; WorkingDir: "{app}\wxPython";
;;------------------------------------------------------------
[UninstallDelete]
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\editor\*.pyc";
Type: files; Name: "{app}\wxPython\lib\editor\*.pyo";
Type: files; Name: "{app}\wxPython\demo\*.pyc";
Type: files; Name: "{app}\wxPython\demo\*.pyo";
Type: files; Name: "{app}\wxPython\demo\data\showTips";
Type: files; Name: "{app}\wxPython\tools\*.pyc";
Type: files; Name: "{app}\wxPython\tools\*.pyo";
Type: files; Name: "{app}\wxPython\samples\doodle\*.pyc";
Type: files; Name: "{app}\wxPython\samples\doodle\*.pyo";
Type: files; Name: "{app}\wxPython\samples\wxProject\*.pyc";
Type: files; Name: "{app}\wxPython\samples\wxProject\*.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";
'''
#----------------------------------------------------------------------
IFS_Template = r"""
program Setup;
var
PythonDir : 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. Aborting...',
mbConfirmation, MB_OK);
Result := false;
end else
Result := true;
end;
function GetPythonDir(Default: String): String;
begin
Result := PythonDir;
end;
begin
end.
"""
#----------------------------------------------------------------------
def find_DLLs():
WXDLL = PYTHONVER = None
proc = os.popen(r"dumpbin /imports wxPython\wxc.pyd", "r")
lines = proc.readlines()
proc.close()
for line in lines:
if line[:6] == " wx":
WXDLL = string.strip(line)
if line[:10] == " python":
PYTHONVER = line[10] + '.' + line[11]
if WXDLL and PYTHONVER:
return WXDLL, PYTHONVER
#----------------------------------------------------------------------
def main():
verglob = {}
execfile("wxPython/__version__.py", verglob)
VERSION = verglob["ver"]
SHORTVER = VERSION[:3]
WXDLL, PYTHONVER = find_DLLs()
PYVER = "Py" + PYTHONVER[0] + PYTHONVER[2]
WXDIR = os.environ["WXWIN"]
WXPYDIR = os.path.join(WXDIR, "wxPython")
SYSDIR = r"C:\WINNT\SYSTEM32"
ISSFILE = "__wxPython.iss"
IFSFILE = "__wxPython.ifs"
if string.find(WXDLL, "h") != -1:
PYVER = PYVER + "-hybrid"
f = open(ISSFILE, "w")
f.write(ISS_Template % vars())
f.close()
f = open(IFSFILE, "w")
f.write(IFS_Template % vars())
f.close()
os.system(r"C:\TOOLS\InnoSetup2Ex\ISCC.exe %s" % ISSFILE)
if not KEEP_TEMPS:
os.remove(ISSFILE)
os.remove(IFSFILE)
#----------------------------------------------------------------------
if __name__ == "__main__":
main()
#----------------------------------------------------------------------

View File

@ -15,6 +15,7 @@ mkdir _distrib_tgz
mkdir _distrib_tgz/wxPython-$1
cp -R demo _distrib_tgz/wxPython-$1
cp -R samples _distrib_tgz/wxPython-$1
# do some cleanup
rm -rf `find _distrib_tgz/wxPython-$1 -name CVS`