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

Lift BazelHandler interface into android/

Because it's commonly useful and not cc/ specific
Also export GenerateBazelBuildActions and update uses

Test: Existing tests pass
Change-Id: Ibc6858bb1129afba181a7686dda432defe33b00d
parent adffbe91
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -57,6 +57,17 @@ type cqueryKey struct {
	archType    ArchType
}

// bazelHandler is the interface for a helper object related to deferring to Bazel for
// processing a module (during Bazel mixed builds). Individual module types should define
// their own bazel handler if they support deferring to Bazel.
type BazelHandler interface {
	// Issue query to Bazel to retrieve information about Bazel's view of the current module.
	// If Bazel returns this information, set module properties on the current module to reflect
	// the returned information.
	// Returns true if information was available from Bazel, false if bazel invocation still needs to occur.
	GenerateBazelBuildActions(ctx ModuleContext, label string) bool
}

type BazelContext interface {
	// The below methods involve queuing cquery requests to be later invoked
	// by bazel. If any of these methods return (_, false), then the request
+4 −3
Original line number Diff line number Diff line
@@ -15,8 +15,9 @@
package android

import (
	"android/soong/bazel"
	"strings"

	"android/soong/bazel"
)

func init() {
@@ -108,7 +109,7 @@ func FileGroupFactory() Module {
	return module
}

func (fg *fileGroup) generateBazelBuildActions(ctx ModuleContext) bool {
func (fg *fileGroup) GenerateBazelBuildActions(ctx ModuleContext) bool {
	if !fg.MixedBuildsEnabled(ctx) {
		return false
	}
@@ -131,7 +132,7 @@ func (fg *fileGroup) generateBazelBuildActions(ctx ModuleContext) bool {
}

func (fg *fileGroup) GenerateAndroidBuildActions(ctx ModuleContext) {
	if fg.generateBazelBuildActions(ctx) {
	if fg.GenerateBazelBuildActions(ctx) {
		return
	}

+2 −13
Original line number Diff line number Diff line
@@ -589,17 +589,6 @@ type installer interface {
	installInRoot() bool
}

// bazelHandler is the interface for a helper object related to deferring to Bazel for
// processing a module (during Bazel mixed builds). Individual module types should define
// their own bazel handler if they support deferring to Bazel.
type bazelHandler interface {
	// Issue query to Bazel to retrieve information about Bazel's view of the current module.
	// If Bazel returns this information, set module properties on the current module to reflect
	// the returned information.
	// Returns true if information was available from Bazel, false if bazel invocation still needs to occur.
	generateBazelBuildActions(ctx android.ModuleContext, label string) bool
}

type xref interface {
	XrefCcFiles() android.Paths
}
@@ -796,7 +785,7 @@ type Module struct {
	compiler     compiler
	linker       linker
	installer    installer
	bazelHandler bazelHandler
	bazelHandler android.BazelHandler

	features []feature
	stl      *stl
@@ -1696,7 +1685,7 @@ func (c *Module) maybeGenerateBazelActions(actx android.ModuleContext) bool {
	bazelModuleLabel := c.GetBazelLabel(actx, c)
	bazelActionsUsed := false
	if c.MixedBuildsEnabled(actx) && c.bazelHandler != nil {
		bazelActionsUsed = c.bazelHandler.generateBazelBuildActions(actx, bazelModuleLabel)
		bazelActionsUsed = c.bazelHandler.GenerateBazelBuildActions(actx, bazelModuleLabel)
	}
	return bazelActionsUsed
}
+2 −2
Original line number Diff line number Diff line
@@ -556,7 +556,7 @@ type libraryDecorator struct {
}

type ccLibraryBazelHandler struct {
	bazelHandler
	android.BazelHandler

	module *Module
}
@@ -642,7 +642,7 @@ func getTocFile(ctx android.ModuleContext, label string, outputFiles []string) a
	return android.OptionalPathForPath(android.PathForBazelOut(ctx, tocFile))
}

func (handler *ccLibraryBazelHandler) generateBazelBuildActions(ctx android.ModuleContext, label string) bool {
func (handler *ccLibraryBazelHandler) GenerateBazelBuildActions(ctx android.ModuleContext, label string) bool {
	bazelCtx := ctx.Config().BazelContext
	ccInfo, ok, err := bazelCtx.GetCcInfo(label, ctx.Arch().ArchType)
	if err != nil {
+2 −2
Original line number Diff line number Diff line
@@ -44,13 +44,13 @@ func RegisterLibraryHeadersBuildComponents(ctx android.RegistrationContext) {
}

type libraryHeaderBazelHander struct {
	bazelHandler
	android.BazelHandler

	module  *Module
	library *libraryDecorator
}

func (h *libraryHeaderBazelHander) generateBazelBuildActions(ctx android.ModuleContext, label string) bool {
func (h *libraryHeaderBazelHander) GenerateBazelBuildActions(ctx android.ModuleContext, label string) bool {
	bazelCtx := ctx.Config().BazelContext
	ccInfo, ok, err := bazelCtx.GetCcInfo(label, ctx.Arch().ArchType)
	if err != nil {
Loading