diff options
-rw-r--r-- | qtcreator.pro | 9 | ||||
-rwxr-xr-x | scripts/bindistHelper.py | 88 |
2 files changed, 94 insertions, 3 deletions
diff --git a/qtcreator.pro b/qtcreator.pro index 39df9754b7..2296d8eadb 100644 --- a/qtcreator.pro +++ b/qtcreator.pro @@ -24,14 +24,17 @@ macx { -executable="$${APPBUNDLE}/Contents/Resources/qtpromaker" \ -executable="$${APPBUNDLE}/Contents/MacOS/qmlprofiler" deployqt.depends = default - bindist.commands = 7z a -mx9 $$OUT_PWD/qtcreator$(INSTALL_POSTFIX).7z "$$OUT_PWD/bin/Qt Creator.app/" - dmg.commands = $$PWD/scripts/makedmg.sh $$OUT_PWD/bin qt-creator$(INSTALL_POSTFIX).dmg + bindist.commands = 7z a -mx9 $$OUT_PWD/qtcreator-mac$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX).7z "$$OUT_PWD/bin/Qt Creator.app/" + dmg.commands = $$PWD/scripts/makedmg.sh $$OUT_PWD/bin qt-creator-mac$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX).dmg QMAKE_EXTRA_TARGETS += dmg } else { deployqt.commands = $$PWD/scripts/deployqt.py -i $(INSTALL_ROOT) win32:deployqt.commands ~= s,/,\\\\,g deployqt.depends = install - bindist.commands = 7z a -mx9 $$OUT_PWD/qtcreator$(INSTALL_POSTFIX).7z $(INSTALL_ROOT) + bindist.commands = $$PWD/scripts/bindistHelper.py $(INSTALL_ROOT) $${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX) + win32:PLATFORM="windows" + else:linux-*:PLATFORM="linux-$${QT_ARCH}" + else:PLATFORM="unknown" win32:bindist.commands ~= s,/,\\\\,g } bindist.depends = deployqt diff --git a/scripts/bindistHelper.py b/scripts/bindistHelper.py new file mode 100755 index 0000000000..f9050c1108 --- /dev/null +++ b/scripts/bindistHelper.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +################################################################################ +# Copyright (c) 2011 Nokia Corporation +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * 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. +# * Neither the name of Nokia Corporation, nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT OWNER 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. +################################################################################ + +import os +import sys +import getopt +import subprocess +import tempfile +import re +import shutil + +def usage(): + print "Usage: %s <creator_install_dir> <pattern>" % os.path.basename(sys.argv[0]) + +def main(): + try: + opts, args = getopt.gnu_getopt(sys.argv[1:], 'h', ['help']) + except: + print str(err) + usage() + sys.exit(2) + for o, a in opts: + if o in ('-h', '--help'): + usage() + sys.exit(0) + + if len(args) < 2: + usage() + sys.exit(2) + + sourcedir=args[0] + pattern=args[1] + + try: + temp_dir = tempfile.mkdtemp() + except: + print "Failed to create a temporary directory!" + sys.exit(2) + + try: + formatted_dirname = "qt-creator-%s" % pattern + temp_fullpath = os.path.join(temp_dir, formatted_dirname) + print "Copying files to temporary directory '%s' for packaging..." % temp_fullpath + shutil.copytree(sourcedir, temp_fullpath, symlinks=True) + print "7-zipping temporary directory..." + output = subprocess.check_output(['7z', 'a', '-mx9', formatted_dirname+'.7z', temp_fullpath]) + print output + except: + print "Error occured, cleaning up..." + shutil.rmtree(temp_dir) + sys.exit(2) + + print "Cleaning up..." + shutil.rmtree(temp_dir) + print "Done." + +if __name__ == "__main__": + if sys.platform == 'darwin': + print "Mac OS does not require this script!" + sys.exit(2) + else: + main() |