diff options
| author | 2024-03-14 01:03:49 +0800 | |
|---|---|---|
| committer | 2024-03-20 09:25:41 +0800 | |
| commit | 750334a0c0676a3100d2f6e9a57ea3e0363c4b16 (patch) | |
| tree | 22da548189ad19ab5dd0531418237806708e8e4f | |
| parent | ee37914529e1aa615c9bbd443db4c8b61c401238 (diff) | |
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
| -rw-r--r-- | cc/genrule_test.go | 44 | ||||
| -rw-r--r-- | genrule/genrule.go | 2 |
2 files changed, 45 insertions, 1 deletions
diff --git a/cc/genrule_test.go b/cc/genrule_test.go index 05c644f1e..08962065a 100644 --- a/cc/genrule_test.go +++ b/cc/genrule_test.go @@ -210,3 +210,47 @@ func TestVendorProductVariantGenrule(t *testing.T) { 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, + ) +} diff --git a/genrule/genrule.go b/genrule/genrule.go index 6f6608817..17e97b644 100644 --- a/genrule/genrule.go +++ b/genrule/genrule.go @@ -808,7 +808,7 @@ func GenRuleFactory() android.Module { type genRuleProperties struct { // names of the output files that will be generated - Out []string + Out []string `android:"arch_variant"` } var Bool = proptools.Bool |