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

Commit 05d90690 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fix reanalysis after full build" into main

parents 24627096 893528a4
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -96,17 +96,31 @@ func (g *GoBinary) GenerateAndroidBuildActions(ctx android.ModuleContext) {
	outputFile := android.PathForArbitraryOutput(ctx, android.Rel(ctx, ctx.Config().OutDir(), g.IntermediateFile())).WithoutRel()
	g.outputFile = outputFile

	// Don't create install rules for modules used by bootstrap, the install command line will differ from
	// what was used during bootstrap, which will cause ninja to rebuild the module on the next run,
	// triggering reanalysis.
	if !usedByBootstrap(ctx.ModuleName()) {
		installPath := ctx.InstallFile(android.PathForModuleInstall(ctx, "bin"), ctx.ModuleName(), outputFile)

	if !ctx.Config().KatiEnabled() || g.ExportedToMake() {
		// Modules in an unexported namespace have no install rule, only add modules in the exported namespaces
		// to the blueprint_tools phony rules.
		if !ctx.Config().KatiEnabled() || g.ExportedToMake() {
			ctx.Phony("blueprint_tools", installPath)
		}
	}

	ctx.SetOutputFiles(android.Paths{outputFile}, "")
}

func usedByBootstrap(name string) bool {
	switch name {
	case "loadplugins", "soong_build":
		return true
	default:
		return false
	}
}

func (g *GoBinary) HostToolPath() android.OptionalPath {
	return android.OptionalPathForPath(g.outputFile)
}