Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 750334a0 authored by kellyhung's avatar kellyhung
Browse files

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
parent ee379145
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
@@ -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,
	)
}
+1 −1
Original line number Diff line number Diff line
@@ -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