From f0d7fbc4b7fb9649b56e9ce67e3326f9f7e069da Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 21 Mar 2011 16:42:21 +0000 Subject: CMake package_archive target to create a .zip/.tar.bz2 package on mac/unix, to be used by buildbot. --- build_files/package_spec/build_archive.py | 69 +++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 build_files/package_spec/build_archive.py (limited to 'build_files/package_spec') 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) + -- cgit v1.2.3