X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8dd13d0fa1afd8e19af18a1a2c529130181cd54f..b503bfef1d6d6829dff588c007cb6ee450983ef3:/distrib/scripts/create-archive.py?ds=inline diff --git a/distrib/scripts/create-archive.py b/distrib/scripts/create-archive.py deleted file mode 100755 index 868ae2f623..0000000000 --- a/distrib/scripts/create-archive.py +++ /dev/null @@ -1,218 +0,0 @@ -#!/usr/bin/env python - -import glob -import optparse -import os -import re -import shutil -import string -import sys -import tempfile -import types - - -## CONSTANTS - -scriptDir = os.path.join(sys.path[0]) -rootDir = os.path.abspath(os.path.join(scriptDir, "..", "..")) -contribDir = os.path.join("contrib", "src") - -dirsToCopy = ["art", "build", "debian", "demos", "distrib/mac", "docs", "include", "interface", "lib", - "locale", "samples", "src", "tests", "utils"] - -dirsToIgnore = [".svn", "CVS", ".git"] -excludeExtensions = [".rej", ".orig", ".mine", ".tmp"] - -option_dict = { - "compression" : ("gzip", "Compression to use. Values are: gzip, bzip, zip, all (default: gzip)"), - "docs" : ("html", "Doc formats to build. Comma separated. Values are: none, html (default: html)"), - "name" : ("wxWidgets", "Name given to the tarball created (default: wxWidgets)"), - "postfix" : ("", "String appended to the version to indicate a special release (default: none)"), - "wxpython" : (False, "Produce wxPython source tarball (name defaults to wxPython-src)") - } - -mswProjectFiles = [ ".vcproj", ".sln", ".dsp", ".dsw", ".vc", ".bat"] -nativeLineEndingFiles = [".cpp", ".h", ".c", ".txt"] - - - -## PARSE OPTIONS - -usage="""usage: %prog [options] \n -Create a wxWidgets archive and store it in . -The output directory must be an absolute, existing path. -Type %prog --help for options. -""" - -parser = optparse.OptionParser(usage, version="%prog 1.0") - -for opt in option_dict: - default = option_dict[opt][0] - - action = "store" - if type(default) == types.BooleanType: - action = "store_true" - parser.add_option("--" + opt, default=default, action=action, dest=opt, help=option_dict[opt][1]) - -options, arguments = parser.parse_args() - -if len(arguments) < 1 or not os.path.exists(arguments[0]) or not os.path.isabs(arguments[0]): - parser.print_usage() - sys.exit(1) - -destDir = arguments[0] -if not os.path.exists(destDir): - os.makedirs(destDir) - -wxVersion = None -VERSION_FILE = os.path.join(rootDir, 'include/wx/version.h') - - -## HELPER FUNCTIONS - -def makeDOSLineEndings(dir, extensions): - fileList = [] - for root, subFolders, files in os.walk(dir): - for file in files: - if os.path.splitext(file)[1] in extensions: - os.system("unix2dos %s" % os.path.join(root, file)) - -def getVersion(includeSubrelease=False): - """Returns wxWidgets version as a tuple: (major,minor,release).""" - - wxVersion = None - major = None - minor = None - release = None - subrelease = None - if wxVersion == None: - f = open(VERSION_FILE, 'rt') - lines = f.readlines() - f.close() - major = minor = release = None - for l in lines: - if not l.startswith('#define'): continue - splitline = l.strip().split() - if splitline[0] != '#define': continue - if len(splitline) < 3: continue - name = splitline[1] - value = splitline[2] - if value == None: continue - if name == 'wxMAJOR_VERSION': major = int(value) - if name == 'wxMINOR_VERSION': minor = int(value) - if name == 'wxRELEASE_NUMBER': release = int(value) - if name == 'wxSUBRELEASE_NUMBER': subrelease = int(value) - if major != None and minor != None and release != None: - if not includeSubrelease or subrelease != None: - break - - if includeSubrelease: - wxVersion = (major, minor, release, subrelease) - else: - wxVersion = (major, minor, release) - return wxVersion - -def allFilesRecursive(dir): - fileList = [] - for root, subFolders, files in os.walk(dir): - shouldCopy = True - for ignoreDir in dirsToIgnore: - if ignoreDir in root: - shouldCopy = False - - if shouldCopy: - for file in files: - path = os.path.join(root,file) - for exclude in excludeExtensions: - if not os.path.splitext(file)[1] in excludeExtensions: - fileList.append(os.path.join(root,file)) - return fileList - - -## MAKE THE RELEASE! - -str_version = "%d.%d.%d" % getVersion() -archive_name = options.name - -if options.wxpython: - dirsToCopy.append("wxPython") - archive_name = "wxPython-src" - str_version = "%d.%d.%d.%d" % getVersion(includeSubrelease=True) - options.docs = "none" - -if options.postfix != "": - str_version += "-" + options.postfix - -full_name = archive_name + "-" + str_version - -copyDir = tempfile.mkdtemp() -wxCopyDir = os.path.join(copyDir, full_name) - -os.makedirs(wxCopyDir) - -os.chdir(rootDir) -fileList = [] -rootFiles = glob.glob("*") -for afile in rootFiles: - if os.path.isfile(os.path.abspath(afile)): - fileList.append(afile) - -for dir in dirsToCopy: - print "Determining files to copy from %s..." % dir - fileList.extend(allFilesRecursive(dir)) - -print "Copying files to the temporary folder %s..." % copyDir -for afile in fileList: - destFile = os.path.join(wxCopyDir, afile) - dirName = os.path.dirname(destFile) - if not os.path.exists(dirName): - os.makedirs(dirName) - shutil.copy(os.path.join(rootDir, afile), destFile) - -# copy include/wx/msw/setup0.h -> include/wx/msw/setup.h -mswSetup0 = os.path.join(wxCopyDir, "include","wx","msw","setup0.h") -shutil.copy(mswSetup0, mswSetup0.replace("setup0.h", "setup.h")), - -all = options.compression == "all" - -# make sure they have the DOS line endings everywhere -print "Setting MSW Project files to use DOS line endings..." -makeDOSLineEndings(wxCopyDir, mswProjectFiles) - -if all or options.compression == "gzip": - print "Creating gzip archive..." - os.chdir(copyDir) - os.system("tar -czvf %s/%s.tar.gz %s" % (destDir, full_name, "*")) - os.chdir(rootDir) - -if all or options.compression == "bzip": - print "Creating bzip archive..." - os.chdir(copyDir) - os.system("tar -cjvf %s/%s.tar.bz2 %s" % (destDir, full_name, "*")) - os.chdir(rootDir) - -if all or options.compression == "zip": - os.chdir(copyDir) - print "Setting DOS line endings on source and text files..." - makeDOSLineEndings(copyDir, nativeLineEndingFiles) - print "Creating zip archive..." - os.system("zip -9 -r %s/%s.zip %s" % (destDir, full_name, "*")) - os.chdir(rootDir) - -shutil.rmtree(copyDir) - -# build any docs packages: -doc_formats = string.split(options.docs, ",") -doxy_dir = "docs/doxygen" -output_dir = doxy_dir + "/out" -for format in doc_formats: - if not format == "none": - os.system("%s/regen.sh %s" % (doxy_dir, format)) - os.chdir(output_dir) - docs_full_name = "%s-%s" % (full_name, format.upper()) - os.rename(format, docs_full_name) - os.system("zip -9 -r %s/%s.zip %s" % (destDir, docs_full_name, "*")) - -os.chdir(rootDir) -if os.path.exists(output_dir): - shutil.rmtree(output_dir)