Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb33a1d4 authored by Alix Espino's avatar Alix Espino Committed by Gerrit Code Review
Browse files

Merge "Created kotlinAttributes struct"

parents 8eb8ae64 75db7840
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -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",
+1 −2
Original line number Diff line number Diff line
@@ -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",
+25 −23
Original line number Diff line number Diff line
@@ -2607,10 +2607,10 @@ func (m *Library) convertJavaResourcesAttributes(ctx android.TopDownMutatorConte

type javaCommonAttributes struct {
	*javaResourcesAttributes
	*kotlinAttributes
	Srcs      bazel.LabelListAttribute
	Plugins   bazel.LabelListAttribute
	Javacopts bazel.StringListAttribute
	Common_srcs bazel.LabelListAttribute
}

type javaDependencyLabels struct {
@@ -2638,7 +2638,7 @@ type javaAidlLibraryAttributes struct {
type bp2BuildJavaInfo struct {
	// separates dependencies into dynamic dependencies and static dependencies.
	DepLabels *javaDependencyLabels
	hasKotlinSrcs bool
	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(),
		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))
			javaCommonAttributes: commonAttrs,
		}

		ctx.CreateBazelTargetModule(ktProps, android.CommonAttributes{Name: ktName}, ktAttrs)