diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-03-21 19:42:21 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-03-21 19:42:21 +0300 |
commit | f0d7fbc4b7fb9649b56e9ce67e3326f9f7e069da (patch) | |
tree | 15a8e4970d6dff7e6f72532728c7db4161e56791 /build_files/package_spec | |
parent | 2513b194a219b87f4751a86b6b4b804de6c50f93 (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-x | build_files/package_spec/build_archive.py | 69 |
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) + |