soong: add os name to cc_genrule

While converting from gn to bp we stumbled upon genrules that have different cmd's for different targets. cc_genrule supports different architectures, but it does not give us any information about the OS types (some genrules are use for both host and android targets).

Change-Id: Ida531ad8b59d87a91d6faedbfe8fee9f75640bd1
Test: TH
This commit is contained in:
Patrick Rohr
2022-12-01 19:03:05 +00:00
parent dfc72a8ca2
commit 5307b3c790

View File

@@ -48,6 +48,8 @@ type GenruleExtraProperties struct {
//
// CC_NATIVE_BRIDGE the name of the subdirectory that native bridge libraries are stored in if
// the architecture has native bridge enabled, empty if it is disabled.
//
// CC_OS the name of the OS the command is being executed for.
func GenRuleFactory() android.Module {
module := genrule.NewGenRule()
@@ -68,8 +70,9 @@ func GenRuleFactory() android.Module {
func genruleCmdModifier(ctx android.ModuleContext, cmd string) string {
target := ctx.Target()
arch := target.Arch.ArchType
return fmt.Sprintf("CC_ARCH=%s CC_NATIVE_BRIDGE=%s CC_MULTILIB=%s && %s",
arch.Name, target.NativeBridgeRelativePath, arch.Multilib, cmd)
osName := target.Os.Name
return fmt.Sprintf("CC_ARCH=%s CC_NATIVE_BRIDGE=%s CC_MULTILIB=%s CC_OS=%s && %s",
arch.Name, target.NativeBridgeRelativePath, arch.Multilib, osName, cmd)
}
var _ android.ImageInterface = (*GenruleExtraProperties)(nil)