]> 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
-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.
 
 
 
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/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
 
index afe0718200261ab870ed24673d9c39799596427c..90092a1e948a34b00f6d6122a151a0964a1c16c1 100755 (executable)
@@ -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
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
+cp -R samples _distrib_tgz/wxPython-$1
 
 # do some cleanup
 rm -rf `find _distrib_tgz/wxPython-$1 -name CVS`