diff options
author | Colin Cross <ccross@android.com> | 2018-09-14 15:06:31 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2018-09-14 20:20:13 -0700 |
commit | d3216291554ba3613042535f1e6918d3b50fa1bf (patch) | |
tree | 779c68468e355dd238beab7303fcdc84a77ef30a /zip/zip.go | |
parent | ec06db2709040ec56b55e272fa541b35b9d45fdf (diff) | |
download | build_soong-d3216291554ba3613042535f1e6918d3b50fa1bf.tar.gz build_soong-d3216291554ba3613042535f1e6918d3b50fa1bf.tar.bz2 build_soong-d3216291554ba3613042535f1e6918d3b50fa1bf.zip |
Don't attempt to deflate when compression level is 0
soong_zip -L 0 would attempt to compress with deflate at compression
level 0, then pick store instead of deflate because the overhead of
deflate would always make it larger than the uncompressed size. Just
use store instead.
Test: m checkbuild
Change-Id: I69610bd755b55d97a47b8c6cf4fbbee3b5632db6
Diffstat (limited to 'zip/zip.go')
-rw-r--r-- | zip/zip.go | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -220,14 +220,17 @@ func Run(args ZipArgs) (err error) { } pathMappings := []pathMapping{} + noCompression := args.CompressionLevel == 0 + for _, fa := range args.FileArgs { srcs := fa.SourceFiles if fa.GlobDir != "" { srcs = append(srcs, recursiveGlobFiles(fa.GlobDir)...) } for _, src := range srcs { - if err := fillPathPairs(fa.PathPrefixInZip, - fa.SourcePrefixToStrip, src, &pathMappings, args.NonDeflatedFiles); err != nil { + err := fillPathPairs(fa.PathPrefixInZip, fa.SourcePrefixToStrip, src, + &pathMappings, args.NonDeflatedFiles, noCompression) + if err != nil { log.Fatal(err) } } @@ -267,7 +270,9 @@ func Run(args ZipArgs) (err error) { return nil } -func fillPathPairs(prefix, rel, src string, pathMappings *[]pathMapping, nonDeflatedFiles map[string]bool) error { +func fillPathPairs(prefix, rel, src string, pathMappings *[]pathMapping, + nonDeflatedFiles map[string]bool, noCompression bool) error { + src = strings.TrimSpace(src) if src == "" { return nil @@ -280,7 +285,7 @@ func fillPathPairs(prefix, rel, src string, pathMappings *[]pathMapping, nonDefl dest = filepath.Join(prefix, dest) zipMethod := zip.Deflate - if _, found := nonDeflatedFiles[dest]; found { + if _, found := nonDeflatedFiles[dest]; found || noCompression { zipMethod = zip.Store } *pathMappings = append(*pathMappings, |