diff options
| author | Steven Knight <knight@baldmt.com> | 2003-12-16 11:56:45 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2003-12-16 11:56:45 (GMT) |
| commit | 571141b46b2f9ee0f7150bdb3aeee11e2d7bcd21 (patch) | |
| tree | 357c0b5f81ca33ee0f74c45dd581a9a424442b45 /src/engine | |
| parent | cde0b273458b25194d63499f24abb877085eb47e (diff) | |
| download | SCons-571141b46b2f9ee0f7150bdb3aeee11e2d7bcd21.zip SCons-571141b46b2f9ee0f7150bdb3aeee11e2d7bcd21.tar.gz SCons-571141b46b2f9ee0f7150bdb3aeee11e2d7bcd21.tar.bz2 | |
Have the Zip() Builder create compressed .zip files by default.
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/SCons/Tool/zip.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/engine/SCons/Tool/zip.py b/src/engine/SCons/Tool/zip.py index 510aa6e..18f0caa 100644 --- a/src/engine/SCons/Tool/zip.py +++ b/src/engine/SCons/Tool/zip.py @@ -41,29 +41,32 @@ import SCons.Util try: import zipfile + internal_zip = 1 +except ImportError: + internal_zip = 0 +if internal_zip: + zipcompression = zipfile.ZIP_DEFLATED def zip(target, source, env): def visit(arg, dirname, names): for name in names: path = os.path.join(dirname, name) if os.path.isfile(path): arg.write(path) - zf = zipfile.ZipFile(str(target[0]), 'w') + compression = env.get('ZIPCOMPRESSION', 0) + zf = zipfile.ZipFile(str(target[0]), 'w', compression) for s in source: if os.path.isdir(str(s)): os.path.walk(str(s), visit, zf) else: zf.write(str(s)) zf.close() - - internal_zip = 1 - -except ImportError: +else: + zipcompression = 0 zip = "$ZIP $ZIPFLAGS ${TARGET.abspath} $SOURCES" - internal_zip = 0 -zipAction = SCons.Action.Action(zip) +zipAction = SCons.Action.Action(zip, varlist=['ZIPCOMPRESSION']) ZipBuilder = SCons.Builder.Builder(action = '$ZIPCOM', source_factory = SCons.Node.FS.default_fs.Entry, @@ -82,6 +85,7 @@ def generate(env): env['ZIP'] = 'zip' env['ZIPFLAGS'] = '' env['ZIPCOM'] = zipAction + env['ZIPCOMPRESSION'] = zipcompression env['ZIPSUFFIX'] = '.zip' def exists(env): |
