diff options
author | Paul Duffin <paulduffin@google.com> | 2019-02-11 15:38:42 +0000 |
---|---|---|
committer | Paul Duffin <paulduffin@google.com> | 2019-02-13 10:11:54 +0000 |
commit | 99e4a50202a31fbef985cd14cfaf748a1eb29cf8 (patch) | |
tree | fc08df56a6c295e6a028fa884f9313b3a2847024 /java | |
parent | 40e26a2a995dabed6129f774d84c6363c833f192 (diff) | |
download | android_build_soong-99e4a50202a31fbef985cd14cfaf748a1eb29cf8.tar.gz android_build_soong-99e4a50202a31fbef985cd14cfaf748a1eb29cf8.tar.bz2 android_build_soong-99e4a50202a31fbef985cd14cfaf748a1eb29cf8.zip |
Fix droiddoc handling of $(location ...)
Bug: 124218911
Test: make checkbuild
Change-Id: I4d9c52b40ce4e8b9ae07f557e079e4f101fbbe87
Diffstat (limited to 'java')
-rw-r--r-- | java/droiddoc.go | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/java/droiddoc.go b/java/droiddoc.go index cbe6be64..787c4d7d 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -695,14 +695,17 @@ func (j *Javadoc) collectDeps(ctx android.ModuleContext) deps { j.sourcepaths = android.PathsForModuleSrc(ctx, j.properties.Local_sourcepaths) j.argFiles = ctx.ExpandSources(j.properties.Arg_files, nil) - argFilesMap := map[string]android.Path{} - - for _, f := range j.argFiles { - if _, exists := argFilesMap[f.Rel()]; !exists { - argFilesMap[f.Rel()] = f + argFilesMap := map[string]string{} + argFileLabels := []string{} + + for _, label := range j.properties.Arg_files { + var paths = ctx.ExpandSources([]string{label}, nil) + if _, exists := argFilesMap[label]; !exists { + argFilesMap[label] = strings.Join(paths.Strings(), " ") + argFileLabels = append(argFileLabels, label) } else { ctx.ModuleErrorf("multiple arg_files for %q, %q and %q", - f, argFilesMap[f.Rel()], f.Rel()) + label, argFilesMap[label], paths) } } @@ -710,10 +713,11 @@ func (j *Javadoc) collectDeps(ctx android.ModuleContext) deps { j.args, err = android.Expand(String(j.properties.Args), func(name string) (string, error) { if strings.HasPrefix(name, "location ") { label := strings.TrimSpace(strings.TrimPrefix(name, "location ")) - if f, ok := argFilesMap[label]; ok { - return f.String(), nil + if paths, ok := argFilesMap[label]; ok { + return paths, nil } else { - return "", fmt.Errorf("unknown location label %q", label) + return "", fmt.Errorf("unknown location label %q, expecting one of %q", + label, strings.Join(argFileLabels, ", ")) } } else if name == "genDir" { return android.PathForModuleGen(ctx).String(), nil |