Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-03-21 19:42:21 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-03-21 19:42:21 +0300
commitf0d7fbc4b7fb9649b56e9ce67e3326f9f7e069da (patch)
tree15a8e4970d6dff7e6f72532728c7db4161e56791 /build_files/package_spec
parent2513b194a219b87f4751a86b6b4b804de6c50f93 (diff)
CMake package_archive target to create a .zip/.tar.bz2 package on mac/unix,
to be used by buildbot.
Diffstat (limited to 'build_files/package_spec')
-rwxr-xr-xbuild_files/package_spec/build_archive.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/build_files/package_spec/build_archive.py b/build_files/package_spec/build_archive.py
new file mode 100755
index 00000000000..79e42af7b69
--- /dev/null
+++ b/build_files/package_spec/build_archive.py
@@ -0,0 +1,69 @@
+#!/usr/bin/python
+
+import os
+import shutil
+import subprocess
+import sys
+
+# todo:
+# strip executables
+
+# get parameters
+if len(sys.argv) < 5:
+ sys.stderr.write('Excepted arguments: ./build_archive.py name extension install_dir output_dir')
+ sys.exit(1)
+
+package_name = sys.argv[1]
+extension = sys.argv[2]
+install_dir = sys.argv[3]
+output_dir = sys.argv[4]
+
+package_archive = os.path.join(output_dir, package_name + '.' + extension)
+package_dir = package_name
+
+# remove existing package with the same name
+try:
+ if os.path.exists(package_archive):
+ os.remove(package_archive)
+ if os.path.exists(package_dir):
+ shutil.rmtree(package_dir)
+except:
+ sys.stderr.write('Failed to clean up old package files: ' + sys.exc_info()[0] + '\n')
+ sys.exit(1)
+
+# create temporary package dir
+try:
+ shutil.copytree(install_dir, package_dir)
+
+ for f in os.listdir(package_dir):
+ if f.startswith('makes'):
+ os.remove(os.path.join(package_dir, f))
+except:
+ sys.stderr.write('Failed to copy install directory: ' + sys.exc_info()[0] + '\n')
+ sys.exit(1)
+
+# create archive
+try:
+ if not os.path.exists(output_dir):
+ os.mkdir(output_dir)
+
+ if extension == 'zip':
+ archive_cmd = ['zip', '-9', '-r', package_archive, package_dir]
+ elif extension == 'tar.bz2':
+ archive_cmd = ['tar', 'cjf', package_archive, package_dir]
+ else:
+ sys.stderr.write('Unknown archive extension: ' + extension)
+ sys.exit(-1)
+
+ subprocess.call(archive_cmd)
+except:
+ sys.stderr.write('Failed to create package archive: ' + sys.exc_info()[0] + '\n')
+ sys.exit(1)
+
+# empty temporary package dir
+try:
+ shutil.rmtree(package_dir)
+except:
+ sys.stderr.write('Failed to clean up package directory: ' + sys.exc_info()[0] + '\n')
+ sys.exit(1)
+