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

Commit 4bc629f0 authored by Priyanka Advani (xWF)'s avatar Priyanka Advani (xWF) Committed by Automerger Merge Worker
Browse files

Merge "Revert "cc: use platform sdk version for vendor/product variants"" into main am: 31432ecf

parents b296ffe7 31432ecf
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -1566,11 +1566,12 @@ func (ctx *moduleContextImpl) minSdkVersion() string {
	}

	if ctx.ctx.Device() {
		// When building for vendor/product, use the latest _stable_ API as "current".
		// This is passed to clang/aidl compilers so that compiled/generated code works
		// with the system.
		if (ctx.inVendor() || ctx.inProduct()) && (ver == "" || ver == "current") {
			ver = ctx.ctx.Config().PlatformSdkVersion().String()
		config := ctx.ctx.Config()
		if ctx.inVendor() {
			// If building for vendor with final API, then use the latest _stable_ API as "current".
			if config.VendorApiLevelFrozen() && (ver == "" || ver == "current") {
				ver = config.PlatformSdkVersion().String()
			}
		}
	}

+13 −11
Original line number Diff line number Diff line
@@ -3153,7 +3153,7 @@ func TestImageVariants(t *testing.T) {
	testDepWithVariant("product")
}

func TestVendorOrProductVariantUsesPlatformSdkVersionAsDefault(t *testing.T) {
func TestVendorSdkVersion(t *testing.T) {
	t.Parallel()

	bp := `
@@ -3161,29 +3161,31 @@ func TestVendorOrProductVariantUsesPlatformSdkVersionAsDefault(t *testing.T) {
			name: "libfoo",
			srcs: ["libfoo.cc"],
			vendor_available: true,
			product_available: true,
		}

		cc_library {
			name: "libbar",
			srcs: ["libbar.cc"],
			vendor_available: true,
			product_available: true,
			min_sdk_version: "29",
		}
	`

	ctx := prepareForCcTest.RunTestWithBp(t, bp)
	testSdkVersionFlag := func(module, variant, version string) {
		flags := ctx.ModuleForTests(module, "android_"+variant+"_arm64_armv8-a_static").Rule("cc").Args["cFlags"]
		android.AssertStringDoesContain(t, "target SDK version", flags, "-target aarch64-linux-android"+version)
	testSdkVersionFlag := func(module, version string) {
		flags := ctx.ModuleForTests(module, "android_vendor_arm64_armv8-a_static").Rule("cc").Args["cFlags"]
		android.AssertStringDoesContain(t, "min sdk version", flags, "-target aarch64-linux-android"+version)
	}

	testSdkVersionFlag("libfoo", "vendor", "30")
	testSdkVersionFlag("libfoo", "product", "30")
	// target SDK version can be set explicitly with min_sdk_version
	testSdkVersionFlag("libbar", "vendor", "29")
	testSdkVersionFlag("libbar", "product", "29")
	testSdkVersionFlag("libfoo", "10000")
	testSdkVersionFlag("libbar", "29")

	ctx = android.GroupFixturePreparers(
		prepareForCcTest,
		android.PrepareForTestWithBuildFlag("RELEASE_BOARD_API_LEVEL_FROZEN", "true"),
	).RunTestWithBp(t, bp)
	testSdkVersionFlag("libfoo", "30")
	testSdkVersionFlag("libbar", "29")
}

func TestClangVerify(t *testing.T) {