diff options
Diffstat (limited to 'java')
| -rw-r--r-- | java/droiddoc.go | 23 | ||||
| -rw-r--r-- | java/java.go | 26 |
2 files changed, 47 insertions, 2 deletions
diff --git a/java/droiddoc.go b/java/droiddoc.go index 16e6921e1..45a72e14d 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -19,6 +19,7 @@ import ( "path/filepath" "strings" + "github.com/google/blueprint" "github.com/google/blueprint/proptools" "android/soong/android" @@ -1973,7 +1974,27 @@ func PrebuiltStubsSourcesFactory() android.Module { return module } -func (d *Droidstubs) BuildSnapshot(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder) { +var DroidStubsSdkMemberType = &droidStubsSdkMemberType{} + +type droidStubsSdkMemberType struct { +} + +func (mt *droidStubsSdkMemberType) AddDependencies(mctx android.BottomUpMutatorContext, dependencyTag blueprint.DependencyTag, names []string) { + mctx.AddVariationDependencies(nil, dependencyTag, names...) +} + +func (mt *droidStubsSdkMemberType) IsInstance(module android.Module) bool { + _, ok := module.(*Droidstubs) + return ok +} + +func (mt *droidStubsSdkMemberType) 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()) + } + variant := variants[0] + d, _ := variant.(*Droidstubs) stubsSrcJar := d.stubsSrcJar snapshotRelativeDir := filepath.Join("java", d.Name()+"_stubs_sources") 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())) |