Merge "Fix reanalysis after full build" into main am: 05d9069051
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3266058 Change-Id: I5ed2922d4106fd3920e7ac22a5d6391e9752ea63 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -96,17 +96,31 @@ func (g *GoBinary) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
outputFile := android.PathForArbitraryOutput(ctx, android.Rel(ctx, ctx.Config().OutDir(), g.IntermediateFile())).WithoutRel()
|
outputFile := android.PathForArbitraryOutput(ctx, android.Rel(ctx, ctx.Config().OutDir(), g.IntermediateFile())).WithoutRel()
|
||||||
g.outputFile = outputFile
|
g.outputFile = outputFile
|
||||||
|
|
||||||
installPath := ctx.InstallFile(android.PathForModuleInstall(ctx, "bin"), ctx.ModuleName(), 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
|
// Modules in an unexported namespace have no install rule, only add modules in the exported namespaces
|
||||||
// to the blueprint_tools phony rules.
|
// to the blueprint_tools phony rules.
|
||||||
ctx.Phony("blueprint_tools", installPath)
|
if !ctx.Config().KatiEnabled() || g.ExportedToMake() {
|
||||||
|
ctx.Phony("blueprint_tools", installPath)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.SetOutputFiles(android.Paths{outputFile}, "")
|
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 {
|
func (g *GoBinary) HostToolPath() android.OptionalPath {
|
||||||
return android.OptionalPathForPath(g.outputFile)
|
return android.OptionalPathForPath(g.outputFile)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user