diff options
| author | 2019-12-06 15:55:24 +0000 | |
|---|---|---|
| committer | 2019-12-06 15:55:24 +0000 | |
| commit | 3a7caaa80c840fa5e72a536979f5cd31988c9d29 (patch) | |
| tree | b8799171ec1d448bd7eb484d82c4f4f0117db034 /java/java.go | |
| parent | 7467a714b0331cdbfcb190515c002274edcc0689 (diff) | |
| parent | a6e737b078a9e372d3293caa401d6f6c4bd7943b (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.go | 26 |
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())) |