Support ninja rsp files in soong_zip

Add a -r argument to soong_zip that reads a list of files from a file
like the -l argument but treats it as a Ninja rsp file with escaping.
Replace the -l arguments in Soong that are using rsp files with -r.

Fixes: 162435077
Test: TestReadRespFile, TestZip
Change-Id: I4605312e99406ab1bd0c37af9c5ad212393f0403
This commit is contained in:
Colin Cross
2020-08-19 13:51:47 -07:00
parent 2d815963ba
commit 053fca10c9
8 changed files with 64 additions and 9 deletions

View File

@@ -62,6 +62,15 @@ func (listFiles) Set(s string) error {
return nil
}
type rspFiles struct{}
func (rspFiles) String() string { return `""` }
func (rspFiles) Set(s string) error {
fileArgsBuilder.RspFile(s)
return nil
}
type dir struct{}
func (dir) String() string { return `""` }
@@ -143,7 +152,8 @@ func main() {
traceFile := flags.String("trace", "", "write trace to file")
flags.Var(&rootPrefix{}, "P", "path prefix within the zip at which to place files")
flags.Var(&listFiles{}, "l", "file containing list of .class files")
flags.Var(&listFiles{}, "l", "file containing list of files to zip")
flags.Var(&rspFiles{}, "r", "file containing list of files to zip with Ninja rsp file escaping")
flags.Var(&dir{}, "D", "directory to include in zip")
flags.Var(&file{}, "f", "file to include in zip")
flags.Var(&nonDeflatedFiles, "s", "file path to be stored within the zip without compression")