diff -r 000000000000 -r 4f2f89ce4247 WebKitTools/wx/packaging/build-win-installer.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebKitTools/wx/packaging/build-win-installer.py Fri Sep 17 09:02:29 2010 +0300 @@ -0,0 +1,97 @@ +#!/usr/bin/env python + +# Copyright (C) 2008 Kevin Ollivier All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Create a Windows installer package for wxPython wxWebKit binaries + +import sys, os, string +import commands +import glob +from subprocess import * + +script_dir = os.path.abspath(os.path.dirname(__file__)) +sys.path.append(os.path.abspath(os.path.join(script_dir, "..", "build"))) + +from build_utils import * + +wxwk_root = os.path.abspath(os.path.join(script_dir, "..", "..", "..")) +wxwebkit_dir = os.path.abspath(os.path.join(wxwk_root, "WebKitBuild", get_config(wxwk_root) + git_branch_name())) + +# Find InnoSetup executable +def getInnoSetupPath(): + name = "ISCC.exe" + retval = "" + dirs = os.environ["PATH"].split(":") + # Add the default file path + dirs.append("C:\\Program Files\\Inno Setup 5") + dirs.append("C:\\Program Files (x86)\\Inno Setup 5") + + if os.environ.has_key("INNO5"): + retval = os.environ["INNO5"] + + if retval == "": + for dir in dirs: + filepath = os.path.join(dir, name) + if os.path.isfile(filepath): + retval = filepath + + return retval + +if __name__ == "__main__": + innoSetup = getInnoSetupPath() + os.chdir(sys.path[0]) + + svnrevision = svn_revision() + + if not os.path.exists(innoSetup): + print "ERROR: Cannot find InnoSetup." + #sys.exit(1) + + if not os.path.exists(wxwebkit_dir): + print "ERROR: Build dir %s doesn't exist." % wxwebkit_dir + sys.exit(1) + + fileList = """ +CopyMode: alwaysoverwrite; Source: *.pyd; DestDir: "{app}" +CopyMode: alwaysoverwrite; Source: *.py; DestDir: "{app}" +""" + + dlls = glob.glob(os.path.join(wxwebkit_dir, "*.dll")) + for dll in dlls: + if dll.find("wxbase") == -1 and dll.find("wxmsw") == -1: + fileList += """CopyMode: alwaysoverwrite; Source: %s; DestDir: "{app}" \n""" % dll + + installerTemplate = open("wxWebKitInstaller.iss.in", "r").read() + + installerTemplate = installerTemplate.replace("<>", svnrevision) + installerTemplate = installerTemplate.replace("<>", wxwebkit_dir ) + installerTemplate = installerTemplate.replace("<>", sys.version[0:3] ) + installerTemplate = installerTemplate.replace("<>", fileList ) + + outputFile = open("wxWebKitInstaller.iss", "w") + outputFile.write(installerTemplate) + outputFile.close() + + success = os.system('"%s" wxWebKitInstaller.iss' % innoSetup) + sys.exit(success)