]> git.saurik.com Git - wxWidgets.git/commitdiff
Switched to InnoSetup for MSW distributions
authorRobin Dunn <robin@alldunn.com>
Mon, 30 Apr 2001 18:32:18 +0000 (18:32 +0000)
committerRobin Dunn <robin@alldunn.com>
Mon, 30 Apr 2001 18:32:18 +0000 (18:32 +0000)
Other distrib stuff

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/CHANGES.txt
wxPython/MANIFEST.in
wxPython/b.bat
wxPython/distrib/make_installer.py [new file with mode: 0644]
wxPython/distrib/makedemo

index 37670eb11a006ae3637348d4ed97e23fa27a3b70..1a4d5f99f284c8142f883be554c61e08e3a0ef2d 100644 (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
 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
 
 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.
 
 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.
 
 
 
 
 
 
index 9aca4dbe5b5163719bf235ffe2103278f7c05f15..06f5108f135db8c77f84a55d298296d0736aad98 100644 (file)
@@ -14,6 +14,11 @@ include demo/bitmaps/*.ico
 include demo/bitmaps/*.gif
 include demo/bitmaps/*.png
 include demo/bitmaps/*.jpg
 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
 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/*.py
 include samples/stxview/*.stx
 include samples/stxview/StructuredText/*.py
+include samples/stxview/StructuredText/*.txt
 include samples/wxProject/*.txt
 include samples/wxProject/*.py
 
 include samples/wxProject/*.txt
 include samples/wxProject/*.py
 
index afe0718200261ab870ed24673d9c39799596427c..90092a1e948a34b00f6d6122a151a0964a1c16c1 100755 (executable)
@@ -33,6 +33,11 @@ elseiff "%1" == "i" then
        shift
        set CMD=%SETUP% build install
 
        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
 rem "s" --> source dist
 elseiff "%1" == "s" then
        shift
diff --git a/wxPython/distrib/make_installer.py b/wxPython/distrib/make_installer.py
new file mode 100644 (file)
index 0000000..eee5c57
--- /dev/null
@@ -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()
+
+
+
+#----------------------------------------------------------------------
+
+
index 20b316365138343634c9cf9cd857ddc481e6a829..3a41a18a566ee31792f2ae05c5e68ab7781f09a1 100755 (executable)
@@ -15,6 +15,7 @@ mkdir _distrib_tgz
 mkdir _distrib_tgz/wxPython-$1
 
 cp -R demo _distrib_tgz/wxPython-$1
 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`
 
 # do some cleanup
 rm -rf `find _distrib_tgz/wxPython-$1 -name CVS`