aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPete Gillin <peteg@google.com>2018-07-19 17:56:49 +0100
committerPete Gillin <peteg@google.com>2018-07-25 11:37:44 +0100
commitb13a015cee808c68bf7142b2848dbe02747966c0 (patch)
tree574d8495e4d1ba0c234af7cd55e3b1ceff1b3589
parenta03c43a4a779c15c6d1744514496c3b5cd6d1374 (diff)
downloadbuild_soong-b13a015cee808c68bf7142b2848dbe02747966c0.tar.gz
build_soong-b13a015cee808c68bf7142b2848dbe02747966c0.tar.bz2
build_soong-b13a015cee808c68bf7142b2848dbe02747966c0.zip
Turn droiddoc's metalava_merge_annotations_dir into a list.
This change replaces droiddoc's metalava_merge_annotations_dir parameter (which takes a single value) with metalava_merge_annotations_dirs (which takes a list). This will makes it possible to merge libcore annotations in from a separate directory under ojluni, instead of adding them in a preprocessing step. It is implemented by passing the --merge-annotations argument to metalava multiple times, which is already supported by metalava's command line parsing. Test: `make metalava-api-stubs-docs` with a local change to add a second directory in //frameworks/base/Android.bp Bug: 111639530 Change-Id: I53d31f1dd45c13405b4511c2b44cbeb7f0e439d1
-rw-r--r--java/droiddoc.go16
1 files changed, 9 insertions, 7 deletions
diff --git a/java/droiddoc.go b/java/droiddoc.go
index 2e821ea0..1d0b3c35 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -262,8 +262,8 @@ type DroiddocProperties struct {
// is set to true, Metalava will allow framework SDK to contain annotations.
Metalava_annotations_enabled *bool
- // a top level directory contains XML files set to merge annotations.
- Metalava_merge_annotations_dir *string
+ // a list of top-level directories containing files to merge annotations from.
+ Metalava_merge_annotations_dirs []string
}
type Javadoc struct {
@@ -970,14 +970,16 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) {
d.annotationsZip = android.PathForModuleOut(ctx, ctx.ModuleName()+"_annotations.zip")
implicitOutputs = append(implicitOutputs, d.annotationsZip)
- if String(d.properties.Metalava_merge_annotations_dir) == "" {
- ctx.PropertyErrorf("metalava_merge_annotations",
+ if len(d.properties.Metalava_merge_annotations_dirs) == 0 {
+ ctx.PropertyErrorf("metalava_merge_annotations_dirs",
"has to be non-empty if annotations was enabled!")
}
+ mergeAnnotationsDirs := android.PathsForSource(ctx, d.properties.Metalava_merge_annotations_dirs)
- mergeAnnotationsDir := android.PathForSource(ctx, String(d.properties.Metalava_merge_annotations_dir))
-
- opts += " --extract-annotations " + d.annotationsZip.String() + " --merge-annotations " + mergeAnnotationsDir.String()
+ opts += " --extract-annotations " + d.annotationsZip.String()
+ for _, mergeAnnotationsDir := range mergeAnnotationsDirs {
+ opts += " --merge-annotations " + mergeAnnotationsDir.String()
+ }
// TODO(tnorbye): find owners to fix these warnings when annotation was enabled.
opts += " --hide HiddenTypedefConstant --hide SuperfluousPrefix --hide AnnotationExtraction"
}