Support multilib property for cc_genrule

Change genrule Out to `android:"arch_variant"` for supporting
multilib variants.

Bug: 323295272
Test: go test -run TestMultilibGenruleOut

Change-Id: I102d64b45a5a2a5193f813001fc32da0d1fe9d36
This commit is contained in:
kellyhung
2024-03-14 01:03:49 +08:00
parent ee37914529
commit 750334a0c0
2 changed files with 45 additions and 1 deletions

View File

@@ -210,3 +210,47 @@ func TestVendorProductVariantGenrule(t *testing.T) {
t.Errorf(`expected product variant, but does not exist in %v`, variants) t.Errorf(`expected product variant, but does not exist in %v`, variants)
} }
} }
// cc_genrule is initialized to android.InitAndroidArchModule
// that is an architecture-specific Android module.
// So testing properties tagged with `android:"arch_variant"`
// for cc_genrule.
func TestMultilibGenruleOut(t *testing.T) {
bp := `
cc_genrule {
name: "gen",
cmd: "cp $(in) $(out)",
srcs: ["foo"],
multilib: {
lib32: {
out: [
"subdir32/external-module32",
],
},
lib64: {
out: [
"subdir64/external-module64",
],
},
},
}
`
result := PrepareForIntegrationTestWithCc.RunTestWithBp(t, bp)
gen_32bit := result.ModuleForTests("gen", "android_arm_armv7-a-neon").OutputFiles(t, "")
android.AssertPathsEndWith(t,
"genrule_out",
[]string{
"subdir32/external-module32",
},
gen_32bit,
)
gen_64bit := result.ModuleForTests("gen", "android_arm64_armv8-a").OutputFiles(t, "")
android.AssertPathsEndWith(t,
"genrule_out",
[]string{
"subdir64/external-module64",
},
gen_64bit,
)
}

View File

@@ -808,7 +808,7 @@ func GenRuleFactory() android.Module {
type genRuleProperties struct { type genRuleProperties struct {
// names of the output files that will be generated // names of the output files that will be generated
Out []string Out []string `android:"arch_variant"`
} }
var Bool = proptools.Bool var Bool = proptools.Bool