diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 70 |
1 files changed, 41 insertions, 29 deletions
diff --git a/java/java.go b/java/java.go index 379382104..22d14ecfe 100644 --- a/java/java.go +++ b/java/java.go @@ -1862,37 +1862,43 @@ func (mt *librarySdkMemberType) IsInstance(module android.Module) bool { return ok } -func (mt *librarySdkMemberType) AddPrebuiltModule(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, member android.SdkMember) android.BpModule { - return builder.AddPrebuiltModule(member, "java_import") +func (mt *librarySdkMemberType) AddPrebuiltModule(ctx android.SdkMemberContext, member android.SdkMember) android.BpModule { + return ctx.SnapshotBuilder().AddPrebuiltModule(member, "java_import") } func (mt *librarySdkMemberType) CreateVariantPropertiesStruct() android.SdkMemberProperties { - return &librarySdkMemberProperties{memberType: mt} + return &librarySdkMemberProperties{} } type librarySdkMemberProperties struct { android.SdkMemberPropertiesBase - memberType *librarySdkMemberType - - library *Library - jarToExport android.Path + JarToExport android.Path + AidlIncludeDirs android.Paths } -func (p *librarySdkMemberProperties) PopulateFromVariant(variant android.SdkAware) { +func (p *librarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) { j := variant.(*Library) - p.library = j - p.jarToExport = p.memberType.jarToExportGetter(j) + p.JarToExport = ctx.MemberType().(*librarySdkMemberType).jarToExportGetter(j) + p.AidlIncludeDirs = j.AidlIncludeDirs() } -func (p *librarySdkMemberProperties) AddToPropertySet(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, propertySet android.BpPropertySet) { - if p.jarToExport != nil { - exportedJar := p.jarToExport - snapshotRelativeJavaLibPath := sdkSnapshotFilePathForJar(p.OsPrefix(), p.library.Name()) +func (p *librarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) { + builder := ctx.SnapshotBuilder() + + exportedJar := p.JarToExport + if exportedJar != nil { + snapshotRelativeJavaLibPath := sdkSnapshotFilePathForJar(p.OsPrefix(), ctx.Name()) builder.CopyToSnapshot(exportedJar, snapshotRelativeJavaLibPath) - for _, dir := range p.library.AidlIncludeDirs() { + propertySet.AddProperty("jars", []string{snapshotRelativeJavaLibPath}) + } + + aidlIncludeDirs := p.AidlIncludeDirs + if len(aidlIncludeDirs) != 0 { + sdkModuleContext := ctx.SdkModuleContext() + for _, dir := range aidlIncludeDirs { // TODO(jiyong): copy parcelable declarations only aidlFiles, _ := sdkModuleContext.GlobWithDeps(dir.String()+"/**/*.aidl", nil) for _, file := range aidlFiles { @@ -1900,7 +1906,7 @@ func (p *librarySdkMemberProperties) AddToPropertySet(sdkModuleContext android.M } } - propertySet.AddProperty("jars", []string{snapshotRelativeJavaLibPath}) + // TODO(b/151933053) - add aidl include dirs property } } @@ -2066,8 +2072,8 @@ func (mt *testSdkMemberType) IsInstance(module android.Module) bool { return ok } -func (mt *testSdkMemberType) AddPrebuiltModule(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, member android.SdkMember) android.BpModule { - return builder.AddPrebuiltModule(member, "java_test_import") +func (mt *testSdkMemberType) AddPrebuiltModule(ctx android.SdkMemberContext, member android.SdkMember) android.BpModule { + return ctx.SnapshotBuilder().AddPrebuiltModule(member, "java_test_import") } func (mt *testSdkMemberType) CreateVariantPropertiesStruct() android.SdkMemberProperties { @@ -2077,11 +2083,11 @@ func (mt *testSdkMemberType) CreateVariantPropertiesStruct() android.SdkMemberPr type testSdkMemberProperties struct { android.SdkMemberPropertiesBase - test *Test - jarToExport android.Path + JarToExport android.Path + TestConfig android.Path } -func (p *testSdkMemberProperties) PopulateFromVariant(variant android.SdkAware) { +func (p *testSdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) { test := variant.(*Test) implementationJars := test.ImplementationJars() @@ -2089,19 +2095,25 @@ func (p *testSdkMemberProperties) PopulateFromVariant(variant android.SdkAware) panic(fmt.Errorf("there must be only one implementation jar from %q", test.Name())) } - p.test = test - p.jarToExport = implementationJars[0] + p.JarToExport = implementationJars[0] + p.TestConfig = test.testConfig } -func (p *testSdkMemberProperties) AddToPropertySet(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, propertySet android.BpPropertySet) { - if p.jarToExport != nil { - snapshotRelativeJavaLibPath := sdkSnapshotFilePathForJar(p.OsPrefix(), p.test.Name()) - builder.CopyToSnapshot(p.jarToExport, snapshotRelativeJavaLibPath) +func (p *testSdkMemberProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) { + builder := ctx.SnapshotBuilder() - snapshotRelativeTestConfigPath := sdkSnapshotFilePathForMember(p.OsPrefix(), p.test.Name(), testConfigSuffix) - builder.CopyToSnapshot(p.test.testConfig, snapshotRelativeTestConfigPath) + exportedJar := p.JarToExport + if exportedJar != nil { + snapshotRelativeJavaLibPath := sdkSnapshotFilePathForJar(p.OsPrefix(), ctx.Name()) + builder.CopyToSnapshot(exportedJar, snapshotRelativeJavaLibPath) propertySet.AddProperty("jars", []string{snapshotRelativeJavaLibPath}) + } + + testConfig := p.TestConfig + if testConfig != nil { + snapshotRelativeTestConfigPath := sdkSnapshotFilePathForMember(p.OsPrefix(), ctx.Name(), testConfigSuffix) + builder.CopyToSnapshot(testConfig, snapshotRelativeTestConfigPath) propertySet.AddProperty("test_config", snapshotRelativeTestConfigPath) } } |