Remove dependencies on the 1-variant fallback

When adding a dependencies, if the variants don't match, but the
dependency only has 1 variant anyways, soong will always use that
variant. This makes it hard to add new variants to soong, because the
1-variant fallback stops being used and you start getting missing
variant errors. Make changes to bp files such that all dependencies
correctly specify the variant to use.

Bug: 372091092
Flag: EXEMPT refactor
Test: m nothing
Change-Id: I305d9a549fc132c3d14f56eae1abbac1b9defd10
diff --git a/api/Android.bp b/api/Android.bp
index 3f2316f..3c92cb2 100644
--- a/api/Android.bp
+++ b/api/Android.bp
@@ -124,7 +124,7 @@
     }),
 }
 
-genrule {
+java_genrule {
     name: "frameworks-base-api-current-compat",
     srcs: [
         ":android.api.public.latest",
@@ -140,7 +140,7 @@
         "$(location :frameworks-base-api-current.txt)",
 }
 
-genrule {
+java_genrule {
     name: "frameworks-base-api-system-current-compat",
     srcs: [
         ":android.api.public.latest",
@@ -160,7 +160,7 @@
         "$(location :frameworks-base-api-system-current.txt)",
 }
 
-genrule {
+java_genrule {
     name: "frameworks-base-api-module-lib-current-compat",
     srcs: [
         ":android.api.public.latest",
@@ -184,7 +184,7 @@
         "$(location :frameworks-base-api-module-lib-current.txt)",
 }
 
-genrule {
+java_genrule {
     name: "frameworks-base-api-current.srcjar",
     tools: ["merge_zips"],
     out: ["current.srcjar"],
@@ -209,7 +209,7 @@
         "$(location soong_zip) -o $(out) -C $(genDir)/out -D $(genDir)/out",
 }
 
-genrule {
+java_genrule {
     name: "sdk-annotations.zip",
     defaults: ["sdk-annotations-defaults"],
     srcs: [
@@ -218,7 +218,7 @@
     ],
 }
 
-genrule {
+java_genrule {
     name: "sdk-annotations-system.zip",
     defaults: ["sdk-annotations-defaults"],
     srcs: [
@@ -227,7 +227,7 @@
     ],
 }
 
-genrule {
+java_genrule {
     name: "sdk-annotations-module-lib.zip",
     defaults: ["sdk-annotations-defaults"],
     srcs: [
@@ -236,7 +236,7 @@
     ],
 }
 
-genrule {
+java_genrule {
     name: "sdk-annotations-system-server.zip",
     defaults: ["sdk-annotations-defaults"],
     srcs: [
@@ -245,7 +245,7 @@
     ],
 }
 
-genrule {
+java_genrule {
     name: "combined-removed-dex",
     visibility: [
         "//frameworks/base/boot",
@@ -460,7 +460,7 @@
     tools: ["extract-flagged-apis"],
 }
 
-genrule {
+java_genrule {
     name: "flag-api-mapping-PublicApi",
     defaults: ["flag-api-mapping-generation-defaults"],
     srcs: [":frameworks-base-api-current.txt"],
@@ -470,7 +470,7 @@
     },
 }
 
-genrule {
+java_genrule {
     name: "flag-api-mapping-SystemApi",
     defaults: ["flag-api-mapping-generation-defaults"],
     srcs: [":frameworks-base-api-system-current.txt"],
@@ -480,7 +480,7 @@
     },
 }
 
-genrule {
+java_genrule {
     name: "flag-api-mapping-ModuleLibApi",
     defaults: ["flag-api-mapping-generation-defaults"],
     srcs: [":frameworks-base-api-module-lib-current.txt"],
@@ -490,7 +490,7 @@
     },
 }
 
-genrule {
+java_genrule {
     name: "flag-api-mapping-SystemServerApi",
     defaults: ["flag-api-mapping-generation-defaults"],
     srcs: [":frameworks-base-api-system-server-current.txt"],
diff --git a/api/api.go b/api/api.go
index 1bbf370..29083df 100644
--- a/api/api.go
+++ b/api/api.go
@@ -20,7 +20,6 @@
 	"github.com/google/blueprint/proptools"
 
 	"android/soong/android"
-	"android/soong/genrule"
 	"android/soong/java"
 )
 
@@ -138,9 +137,10 @@
 }
 
 type fgProps struct {
-	Name       *string
-	Srcs       proptools.Configurable[[]string]
-	Visibility []string
+	Name               *string
+	Srcs               proptools.Configurable[[]string]
+	Device_common_srcs proptools.Configurable[[]string]
+	Visibility         []string
 }
 
 type defaultsProps struct {
@@ -201,7 +201,7 @@
 		}
 	}
 	props.Visibility = []string{"//visibility:public"}
-	ctx.CreateModule(genrule.GenRuleFactory, &props)
+	ctx.CreateModule(java.GenRuleFactory, &props)
 }
 
 func createMergedAnnotationsFilegroups(ctx android.LoadHookContext, modules, system_server_modules proptools.Configurable[[]string]) {
@@ -230,7 +230,7 @@
 	} {
 		props := fgProps{}
 		props.Name = proptools.StringPtr(i.name)
-		props.Srcs = createSrcs(i.modules, i.tag)
+		props.Device_common_srcs = createSrcs(i.modules, i.tag)
 		ctx.CreateModule(android.FileGroupFactory, &props)
 	}
 }
@@ -429,7 +429,7 @@
 func createPublicStubsSourceFilegroup(ctx android.LoadHookContext, modules proptools.Configurable[[]string]) {
 	props := fgProps{}
 	props.Name = proptools.StringPtr("all-modules-public-stubs-source")
-	props.Srcs = createSrcs(modules, "{.public.stubs.source}")
+	props.Device_common_srcs = createSrcs(modules, "{.public.stubs.source}")
 	props.Visibility = []string{"//frameworks/base"}
 	ctx.CreateModule(android.FileGroupFactory, &props)
 }
diff --git a/api/api_test.go b/api/api_test.go
index fb26f82..166f053 100644
--- a/api/api_test.go
+++ b/api/api_test.go
@@ -253,7 +253,7 @@
 	`)
 
 	subModuleDependsOnSelectAppendedModule := java.CheckModuleHasDependency(t,
-		result.TestContext, "foo-current.txt", "", "framework-foo")
+		result.TestContext, "foo-current.txt", "android_common", "framework-foo")
 	android.AssertBoolEquals(t, "Submodule expected to depend on the select-appended module",
 		true, subModuleDependsOnSelectAppendedModule)
 }