diff options
| author | 2023-03-06 22:08:49 +0000 | |
|---|---|---|
| committer | 2023-03-08 17:15:10 +0000 | |
| commit | 75db7840ab90e2f8a2b61f939bfe60da37b872de (patch) | |
| tree | 80690b4dc66c0f71ab3720d2be7f0d2cc5f54a24 /java/java.go | |
| parent | 54d18347cfc372c69b9e985639538e642e80a42f (diff) | |
Created kotlinAttributes struct
makes it clearer which attributes are kotlin specific
embedded within javaCommonAttributes since both
java_* and android_* use kotlin.
Change-Id: Ib7c9b912a9901cd1c3d150ab1e0a79011d8e07de
Test: go test ./bp2build
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 48 |
1 files changed, 25 insertions, 23 deletions
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) |