Merge "Pass --min_sdk_version to aidl compiler" am: a5b538394c
am: 29b2f3e48a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1883408 Change-Id: I5970216bc2f69c6fac8e6e430f6109958eaed549
This commit is contained in:
@@ -3585,6 +3585,58 @@ func TestAidlFlagsPassedToTheAidlCompiler(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAidlFlagsWithMinSdkVersion(t *testing.T) {
|
||||||
|
for _, tc := range []struct {
|
||||||
|
name string
|
||||||
|
sdkVersion string
|
||||||
|
variant string
|
||||||
|
expected string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "default is current",
|
||||||
|
sdkVersion: "",
|
||||||
|
variant: "android_arm64_armv8-a_static",
|
||||||
|
expected: "platform_apis",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "use sdk_version",
|
||||||
|
sdkVersion: `sdk_version: "29"`,
|
||||||
|
variant: "android_arm64_armv8-a_static",
|
||||||
|
expected: "platform_apis",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "use sdk_version(sdk variant)",
|
||||||
|
sdkVersion: `sdk_version: "29"`,
|
||||||
|
variant: "android_arm64_armv8-a_sdk_static",
|
||||||
|
expected: "29",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "use min_sdk_version",
|
||||||
|
sdkVersion: `min_sdk_version: "29"`,
|
||||||
|
variant: "android_arm64_armv8-a_static",
|
||||||
|
expected: "29",
|
||||||
|
},
|
||||||
|
} {
|
||||||
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
|
ctx := testCc(t, `
|
||||||
|
cc_library {
|
||||||
|
name: "libfoo",
|
||||||
|
stl: "none",
|
||||||
|
srcs: ["a/Foo.aidl"],
|
||||||
|
`+tc.sdkVersion+`
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
libfoo := ctx.ModuleForTests("libfoo", tc.variant)
|
||||||
|
manifest := android.RuleBuilderSboxProtoForTests(t, libfoo.Output("aidl.sbox.textproto"))
|
||||||
|
aidlCommand := manifest.Commands[0].GetCommand()
|
||||||
|
expectedAidlFlag := "--min_sdk_version=" + tc.expected
|
||||||
|
if !strings.Contains(aidlCommand, expectedAidlFlag) {
|
||||||
|
t.Errorf("aidl command %q does not contain %q", aidlCommand, expectedAidlFlag)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestMinSdkVersionInClangTriple(t *testing.T) {
|
func TestMinSdkVersionInClangTriple(t *testing.T) {
|
||||||
ctx := testCc(t, `
|
ctx := testCc(t, `
|
||||||
cc_library_shared {
|
cc_library_shared {
|
||||||
|
@@ -552,6 +552,12 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
|
|||||||
flags.aidlFlags = append(flags.aidlFlags, "-t")
|
flags.aidlFlags = append(flags.aidlFlags, "-t")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
aidlMinSdkVersion := ctx.minSdkVersion()
|
||||||
|
if aidlMinSdkVersion == "" {
|
||||||
|
aidlMinSdkVersion = "platform_apis"
|
||||||
|
}
|
||||||
|
flags.aidlFlags = append(flags.aidlFlags, "--min_sdk_version="+aidlMinSdkVersion)
|
||||||
|
|
||||||
flags.Local.CommonFlags = append(flags.Local.CommonFlags,
|
flags.Local.CommonFlags = append(flags.Local.CommonFlags,
|
||||||
"-I"+android.PathForModuleGen(ctx, "aidl").String())
|
"-I"+android.PathForModuleGen(ctx, "aidl").String())
|
||||||
}
|
}
|
||||||
|
@@ -784,6 +784,9 @@ func (j *Module) aidlFlags(ctx android.ModuleContext, aidlPreprocess android.Opt
|
|||||||
flags = append(flags, "--transaction_names")
|
flags = append(flags, "--transaction_names")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
aidlMinSdkVersion := j.MinSdkVersion(ctx).ApiLevel.String()
|
||||||
|
flags = append(flags, "--min_sdk_version="+aidlMinSdkVersion)
|
||||||
|
|
||||||
return strings.Join(flags, " "), deps
|
return strings.Join(flags, " "), deps
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1357,6 +1357,36 @@ func TestAidlFlagsArePassedToTheAidlCompiler(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAidlFlagsWithMinSdkVersion(t *testing.T) {
|
||||||
|
fixture := android.GroupFixturePreparers(
|
||||||
|
prepareForJavaTest, FixtureWithPrebuiltApis(map[string][]string{"14": {"foo"}}))
|
||||||
|
|
||||||
|
for _, tc := range []struct {
|
||||||
|
name string
|
||||||
|
sdkVersion string
|
||||||
|
expected string
|
||||||
|
}{
|
||||||
|
{"default is current", "", "current"},
|
||||||
|
{"use sdk_version", `sdk_version: "14"`, "14"},
|
||||||
|
{"system_current", `sdk_version: "system_current"`, "current"},
|
||||||
|
} {
|
||||||
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
|
ctx := fixture.RunTestWithBp(t, `
|
||||||
|
java_library {
|
||||||
|
name: "foo",
|
||||||
|
srcs: ["aidl/foo/IFoo.aidl"],
|
||||||
|
`+tc.sdkVersion+`
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
aidlCommand := ctx.ModuleForTests("foo", "android_common").Rule("aidl").RuleParams.Command
|
||||||
|
expectedAidlFlag := "--min_sdk_version=" + tc.expected
|
||||||
|
if !strings.Contains(aidlCommand, expectedAidlFlag) {
|
||||||
|
t.Errorf("aidl command %q does not contain %q", aidlCommand, expectedAidlFlag)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestDataNativeBinaries(t *testing.T) {
|
func TestDataNativeBinaries(t *testing.T) {
|
||||||
ctx, _ := testJava(t, `
|
ctx, _ := testJava(t, `
|
||||||
java_test_host {
|
java_test_host {
|
||||||
|
Reference in New Issue
Block a user