Loading cc/cc_test.go +52 −0 Original line number Diff line number Diff line Loading @@ -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) { ctx := testCc(t, ` cc_library_shared { Loading cc/compiler.go +6 −0 Original line number Diff line number Diff line Loading @@ -552,6 +552,12 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps 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, "-I"+android.PathForModuleGen(ctx, "aidl").String()) } Loading java/base.go +3 −0 Original line number Diff line number Diff line Loading @@ -784,6 +784,9 @@ func (j *Module) aidlFlags(ctx android.ModuleContext, aidlPreprocess android.Opt flags = append(flags, "--transaction_names") } aidlMinSdkVersion := j.MinSdkVersion(ctx).ApiLevel.String() flags = append(flags, "--min_sdk_version="+aidlMinSdkVersion) return strings.Join(flags, " "), deps } Loading java/java_test.go +30 −0 Original line number Diff line number Diff line Loading @@ -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) { ctx, _ := testJava(t, ` java_test_host { Loading Loading
cc/cc_test.go +52 −0 Original line number Diff line number Diff line Loading @@ -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) { ctx := testCc(t, ` cc_library_shared { Loading
cc/compiler.go +6 −0 Original line number Diff line number Diff line Loading @@ -552,6 +552,12 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps 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, "-I"+android.PathForModuleGen(ctx, "aidl").String()) } Loading
java/base.go +3 −0 Original line number Diff line number Diff line Loading @@ -784,6 +784,9 @@ func (j *Module) aidlFlags(ctx android.ModuleContext, aidlPreprocess android.Opt flags = append(flags, "--transaction_names") } aidlMinSdkVersion := j.MinSdkVersion(ctx).ApiLevel.String() flags = append(flags, "--min_sdk_version="+aidlMinSdkVersion) return strings.Join(flags, " "), deps } Loading
java/java_test.go +30 −0 Original line number Diff line number Diff line Loading @@ -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) { ctx, _ := testJava(t, ` java_test_host { Loading