summaryrefslogtreecommitdiff
path: root/java/java.go
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2019-12-06 15:55:24 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2019-12-06 15:55:24 +0000
commit3a7caaa80c840fa5e72a536979f5cd31988c9d29 (patch)
treeb8799171ec1d448bd7eb484d82c4f4f0117db034 /java/java.go
parent7467a714b0331cdbfcb190515c002274edcc0689 (diff)
parenta6e737b078a9e372d3293caa401d6f6c4bd7943b (diff)
Merge changes Ia7dbcd41,I93140450,I4d3fe18f,Ib00870dd,I10203594
* changes: Organize sdk member properties Extract the cc and java sdk related tests out into their own file Improve testing of sdk snapshot generation Separate sdk testing infrastructure from sdk tests Parameterize the sdk member processing
Diffstat (limited to 'java/java.go')
-rw-r--r--java/java.go26
1 files changed, 25 insertions, 1 deletions
diff --git a/java/java.go b/java/java.go
index 9c0fcbaa0..0334ca49a 100644
--- a/java/java.go
+++ b/java/java.go
@@ -1721,7 +1721,31 @@ func (j *Library) javaStubFilePathFor() string {
return filepath.Join(javaStubDir, j.Name()+javaStubFileSuffix)
}
-func (j *Library) BuildSnapshot(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder) {
+var LibrarySdkMemberType = &librarySdkMemberType{}
+
+type librarySdkMemberType struct {
+}
+
+func (mt *librarySdkMemberType) AddDependencies(mctx android.BottomUpMutatorContext, dependencyTag blueprint.DependencyTag, names []string) {
+ mctx.AddVariationDependencies(nil, dependencyTag, names...)
+}
+
+func (mt *librarySdkMemberType) IsInstance(module android.Module) bool {
+ _, ok := module.(*Library)
+ return ok
+}
+
+func (mt *librarySdkMemberType) BuildSnapshot(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, member android.SdkMember) {
+ variants := member.Variants()
+ if len(variants) != 1 {
+ sdkModuleContext.ModuleErrorf("sdk contains %d variants of member %q but only one is allowed", len(variants), member.Name())
+ for _, variant := range variants {
+ sdkModuleContext.ModuleErrorf(" %q", variant)
+ }
+ }
+ variant := variants[0]
+ j := variant.(*Library)
+
headerJars := j.HeaderJars()
if len(headerJars) != 1 {
panic(fmt.Errorf("there must be only one header jar from %q", j.Name()))