diff --git a/java/aar.go b/java/aar.go index 7cdcbae1b..7c45efee6 100644 --- a/java/aar.go +++ b/java/aar.go @@ -1092,11 +1092,6 @@ func (a *AndroidLibrary) ConvertWithBp2build(ctx android.TopDownMutatorContext) } else if !depLabels.Deps.IsEmpty() { ctx.ModuleErrorf("Module has direct dependencies but no sources. Bazel will not allow this.") } - - if len(a.properties.Common_srcs) != 0 { - commonAttrs.Common_srcs = bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, a.properties.Common_srcs)) - } - name := a.Name() props := bazel.BazelTargetModuleProperties{ Rule_class: "android_library", diff --git a/java/app.go b/java/app.go index 1731970b3..f5966735c 100755 --- a/java/app.go +++ b/java/app.go @@ -1528,13 +1528,12 @@ func (a *AndroidApp) ConvertWithBp2build(ctx android.TopDownMutatorContext) { Bzl_load_location: "//build/bazel/rules/android:rules.bzl", } - if !bp2BuildInfo.hasKotlinSrcs && len(a.properties.Common_srcs) == 0 { + if !bp2BuildInfo.hasKotlin { appAttrs.javaCommonAttributes = commonAttrs appAttrs.bazelAapt = aapt appAttrs.Deps = deps } else { ktName := a.Name() + "_kt" - commonAttrs.Common_srcs = bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, a.properties.Common_srcs)) ctx.CreateBazelTargetModule( bazel.BazelTargetModuleProperties{ Rule_class: "android_library", diff --git a/java/java.go b/java/java.go index 6a764cfe9..63c4416bc 100644 --- a/java/java.go +++ b/java/java.go @@ -2607,10 +2607,10 @@ func (m *Library) convertJavaResourcesAttributes(ctx android.TopDownMutatorConte type javaCommonAttributes struct { *javaResourcesAttributes - Srcs bazel.LabelListAttribute - Plugins bazel.LabelListAttribute - Javacopts bazel.StringListAttribute - Common_srcs bazel.LabelListAttribute + *kotlinAttributes + Srcs bazel.LabelListAttribute + Plugins bazel.LabelListAttribute + Javacopts bazel.StringListAttribute } type javaDependencyLabels struct { @@ -2637,8 +2637,8 @@ type javaAidlLibraryAttributes struct { // depending on the module type. type bp2BuildJavaInfo struct { // separates dependencies into dynamic dependencies and static dependencies. - DepLabels *javaDependencyLabels - hasKotlinSrcs bool + DepLabels *javaDependencyLabels + hasKotlin bool } // convertLibraryAttrsBp2Build returns a javaCommonAttributes struct with @@ -2785,9 +2785,17 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) depLabels.Deps = deps depLabels.StaticDeps = bazel.MakeLabelListAttribute(staticDeps) + hasKotlin := !kotlinSrcs.IsEmpty() + if len(m.properties.Common_srcs) != 0 { + hasKotlin = true + commonAttrs.kotlinAttributes = &kotlinAttributes{ + bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, m.properties.Common_srcs)), + } + } + bp2BuildInfo := &bp2BuildJavaInfo{ - DepLabels: depLabels, - hasKotlinSrcs: !kotlinSrcs.IsEmpty(), + DepLabels: depLabels, + hasKotlin: hasKotlin, } return commonAttrs, bp2BuildInfo @@ -2800,6 +2808,10 @@ type javaLibraryAttributes struct { Neverlink bazel.BoolAttribute } +type kotlinAttributes struct { + Common_srcs bazel.LabelListAttribute +} + func javaLibraryBp2Build(ctx android.TopDownMutatorContext, m *Library) { commonAttrs, bp2BuildInfo := m.convertLibraryAttrsBp2Build(ctx) depLabels := bp2BuildInfo.DepLabels @@ -2828,14 +2840,12 @@ func javaLibraryBp2Build(ctx android.TopDownMutatorContext, m *Library) { } name := m.Name() - if !bp2BuildInfo.hasKotlinSrcs && len(m.properties.Common_srcs) == 0 { + if !bp2BuildInfo.hasKotlin { props = bazel.BazelTargetModuleProperties{ Rule_class: "java_library", Bzl_load_location: "//build/bazel/rules/java:library.bzl", } } else { - attrs.javaCommonAttributes.Common_srcs = bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, m.properties.Common_srcs)) - props = bazel.BazelTargetModuleProperties{ Rule_class: "kt_jvm_library", Bzl_load_location: "//build/bazel/rules/kotlin:kt_jvm_library.bzl", @@ -2926,7 +2936,7 @@ func javaBinaryHostBp2Build(ctx android.TopDownMutatorContext, m *Binary) { Jvm_flags: jvmFlags, } - if !bp2BuildInfo.hasKotlinSrcs && len(m.properties.Common_srcs) == 0 { + if !bp2BuildInfo.hasKotlin { attrs.javaCommonAttributes = commonAttrs attrs.Deps = deps } else { @@ -2935,18 +2945,10 @@ func javaBinaryHostBp2Build(ctx android.TopDownMutatorContext, m *Binary) { Rule_class: "kt_jvm_library", Bzl_load_location: "//build/bazel/rules/kotlin:kt_jvm_library.bzl", } - ktAttrs := &javaLibraryAttributes{ - Deps: deps, - javaCommonAttributes: &javaCommonAttributes{ - Srcs: commonAttrs.Srcs, - Plugins: commonAttrs.Plugins, - Javacopts: commonAttrs.Javacopts, - javaResourcesAttributes: commonAttrs.javaResourcesAttributes, - }, - } - if len(m.properties.Common_srcs) != 0 { - ktAttrs.javaCommonAttributes.Common_srcs = bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, m.properties.Common_srcs)) + ktAttrs := &javaLibraryAttributes{ + Deps: deps, + javaCommonAttributes: commonAttrs, } ctx.CreateBazelTargetModule(ktProps, android.CommonAttributes{Name: ktName}, ktAttrs)