Add (host|host-cross|target)[-<OS>] phony targets when not using make
Test: m --skip-make host-linux_bionic Test: m --skip-make host Change-Id: I28a15bcc690245f1a544a051868340b1dc818bb3
This commit is contained in:
@@ -1001,6 +1001,54 @@ func (c *buildTargetSingleton) GenerateBuildActions(ctx blueprint.SingletonConte
|
|||||||
Optional: ctx.Config().(Config).EmbeddedInMake(),
|
Optional: ctx.Config().(Config).EmbeddedInMake(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create (host|host-cross|target)-<OS> phony rules to build a reduced checkbuild.
|
||||||
|
osDeps := map[OsType]Paths{}
|
||||||
|
ctx.VisitAllModules(func(module blueprint.Module) {
|
||||||
|
if a, ok := module.(Module); ok {
|
||||||
|
if a.Enabled() {
|
||||||
|
os := a.Target().Os
|
||||||
|
osDeps[os] = append(osDeps[os], a.base().checkbuildFiles...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
osClass := make(map[string][]string)
|
||||||
|
for os, deps := range osDeps {
|
||||||
|
var className string
|
||||||
|
|
||||||
|
switch os.Class {
|
||||||
|
case Host:
|
||||||
|
className = "host"
|
||||||
|
case HostCross:
|
||||||
|
className = "host-cross"
|
||||||
|
case Device:
|
||||||
|
className = "target"
|
||||||
|
default:
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
name := className + "-" + os.Name
|
||||||
|
osClass[className] = append(osClass[className], name)
|
||||||
|
|
||||||
|
ctx.Build(pctx, blueprint.BuildParams{
|
||||||
|
Rule: blueprint.Phony,
|
||||||
|
Outputs: []string{name},
|
||||||
|
Implicits: deps.Strings(),
|
||||||
|
Optional: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wrap those into host|host-cross|target phony rules
|
||||||
|
osClasses := sortedKeys(osClass)
|
||||||
|
for _, class := range osClasses {
|
||||||
|
ctx.Build(pctx, blueprint.BuildParams{
|
||||||
|
Rule: blueprint.Phony,
|
||||||
|
Outputs: []string{class},
|
||||||
|
Implicits: osClass[class],
|
||||||
|
Optional: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type AndroidModulesByName struct {
|
type AndroidModulesByName struct {
|
||||||
|
Reference in New Issue
Block a user