From a934428b53e0414a8a158f752364d4ccd69284c9 Mon Sep 17 00:00:00 2001
From: Anton Hansson <hansson@google.com>
Date: Wed, 15 Feb 2023 14:52:28 +0000
Subject: [PATCH] Convert merged srcjar rule to Android.bp

api.go was made to create modules that were hard to create in
Android.bp. However since we now have a filegroup with all the
public srcjars this rule can very easily be expressed in Android.bp.

Test: build before & after (no diff)
Change-Id: I1d6c6bdcd6b75693de1e80ced13efd1d10202171
---
 api/Android.bp | 12 ++++++++++++
 api/api.go     | 13 -------------
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/api/Android.bp b/api/Android.bp
index fe283e1a95c65..a2b8038842cce 100644
--- a/api/Android.bp
+++ b/api/Android.bp
@@ -178,6 +178,18 @@ genrule {
         "$(location :frameworks-base-api-module-lib-current.txt)",
 }
 
+genrule {
+    name: "frameworks-base-api-current.srcjar",
+    tools: ["merge_zips"],
+    out: ["current.srcjar"],
+    cmd: "$(location merge_zips) $(out) $(in)",
+    srcs: [
+        ":api-stubs-docs-non-updatable",
+        ":all-modules-public-stubs-source",
+    ],
+    visibility: ["//visibility:private"], // Used by make module in //development, mind
+}
+
 // This produces the same annotations.zip as framework-doc-stubs, but by using
 // outputs from individual modules instead of all the source code.
 genrule_defaults {
diff --git a/api/api.go b/api/api.go
index c91ff815395f9..077ab9679ec9a 100644
--- a/api/api.go
+++ b/api/api.go
@@ -147,17 +147,6 @@ func createMergedTxt(ctx android.LoadHookContext, txt MergedTxtDefinition) {
 	ctx.CreateModule(genrule.GenRuleFactory, &props)
 }
 
-func createMergedStubsSrcjar(ctx android.LoadHookContext, modules []string) {
-	props := genruleProps{}
-	props.Name = proptools.StringPtr(ctx.ModuleName() + "-current.srcjar")
-	props.Tools = []string{"merge_zips"}
-	props.Out = []string{"current.srcjar"}
-	props.Cmd = proptools.StringPtr("$(location merge_zips) $(out) $(in)")
-	props.Srcs = append([]string{":api-stubs-docs-non-updatable"}, createSrcs(modules, "{.public.stubs.source}")...)
-	props.Visibility = []string{"//visibility:private"} // Used by make module in //development, mind
-	ctx.CreateModule(genrule.GenRuleFactory, &props)
-}
-
 func createMergedAnnotationsFilegroups(ctx android.LoadHookContext, modules, system_server_modules []string) {
 	for _, i := range []struct{
 		name    string
@@ -382,8 +371,6 @@ func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) {
 	}
 	createMergedTxts(ctx, bootclasspath, system_server_classpath)
 
-	createMergedStubsSrcjar(ctx, bootclasspath)
-
 	createMergedPublicStubs(ctx, bootclasspath)
 	createMergedSystemStubs(ctx, bootclasspath)
 	createMergedTestStubsForNonUpdatableModules(ctx)
-- 
GitLab