From 03b733c936221067a873c1576fd52cba8aa55f1b Mon Sep 17 00:00:00 2001 From: Nan Zhang Date: Tue, 26 Jun 2018 13:24:05 -0700 Subject: [PATCH 1/2] Use Metalava based android.jar for SDK Define LOCAL_DROIDDOC_ANNOTATIONS_ZIP to export zip file. Test: m out/target/common/obj/PACKAGING/metalava-api-stubs-docs_annotations.zip Bug: b/78245848 Change-Id: I66ca2a50adc095cc8a8a1a10620427a91480a9bc --- java/androidmk.go | 3 +++ java/droiddoc.go | 8 +++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/java/androidmk.go b/java/androidmk.go index 5740eca99..c6ecfbce5 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -304,6 +304,9 @@ func (ddoc *Droiddoc) AndroidMk() android.AndroidMkData { if ddoc.Javadoc.stubsSrcJar != nil { fmt.Fprintln(w, "LOCAL_DROIDDOC_STUBS_SRCJAR := ", ddoc.Javadoc.stubsSrcJar.String()) } + if ddoc.annotationsZip != nil { + fmt.Fprintln(w, "LOCAL_DROIDDOC_ANNOTATIONS_ZIP := ", ddoc.annotationsZip.String()) + } if ddoc.checkCurrentApiTimestamp != nil { fmt.Fprintln(w, ".PHONY:", ddoc.Name()+"-check-current-api") fmt.Fprintln(w, ddoc.Name()+"-check-current-api:", diff --git a/java/droiddoc.go b/java/droiddoc.go index 53c75b5c5..2e821ea06 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -302,6 +302,8 @@ type Droiddoc struct { checkCurrentApiTimestamp android.WritablePath updateCurrentApiTimestamp android.WritablePath checkLastReleasedApiTimestamp android.WritablePath + + annotationsZip android.WritablePath } func InitDroiddocModule(module android.DefaultableModule, hod android.HostOrDeviceSupported) { @@ -965,8 +967,8 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { } opts += " --include-annotations --migrate-nullness" - annotationsZip := android.PathForModuleOut(ctx, ctx.ModuleName()+"_annotations.zip") - implicitOutputs = append(implicitOutputs, annotationsZip) + 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", @@ -975,7 +977,7 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { mergeAnnotationsDir := android.PathForSource(ctx, String(d.properties.Metalava_merge_annotations_dir)) - opts += " --extract-annotations " + annotationsZip.String() + " --merge-annotations " + mergeAnnotationsDir.String() + opts += " --extract-annotations " + d.annotationsZip.String() + " --merge-annotations " + mergeAnnotationsDir.String() // TODO(tnorbye): find owners to fix these warnings when annotation was enabled. opts += " --hide HiddenTypedefConstant --hide SuperfluousPrefix --hide AnnotationExtraction" } From ec93cd9f2a60812bf1dbcf83ddffbe08c66edf95 Mon Sep 17 00:00:00 2001 From: Nan Zhang Date: Fri, 13 Jul 2018 16:36:04 -0700 Subject: [PATCH 2/2] Add private-stub-annotations.jar as core-java lib Since currently android.jar compile against to it. Test: m -j metalava_android_stubs_current Bug: b/78245848 Change-Id: Id5812f69125085821182295e577849b5f2c4bead --- java/java.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/java.go b/java/java.go index 53f851bda..a2ba7e6f9 100644 --- a/java/java.go +++ b/java/java.go @@ -693,7 +693,8 @@ func getLinkType(m *Module, name string) linkType { ver := m.sdkVersion() noStdLibs := Bool(m.properties.No_standard_libs) switch { - case name == "core.current.stubs" || ver == "core_current" || noStdLibs || name == "stub-annotations": + case name == "core.current.stubs" || ver == "core_current" || noStdLibs || name == "stub-annotations" || + name == "private-stub-annotations-jar": return javaCore case name == "android_system_stubs_current" || strings.HasPrefix(ver, "system_") || name == "metalava_android_system_stubs_current": return javaSystem