Loading cc/cc.go +6 −5 Original line number Diff line number Diff line Loading @@ -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() } } } Loading cc/cc_test.go +13 −11 Original line number Diff line number Diff line Loading @@ -3153,7 +3153,7 @@ func TestImageVariants(t *testing.T) { testDepWithVariant("product") } func TestVendorOrProductVariantUsesPlatformSdkVersionAsDefault(t *testing.T) { func TestVendorSdkVersion(t *testing.T) { t.Parallel() bp := ` Loading @@ -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) { Loading Loading
cc/cc.go +6 −5 Original line number Diff line number Diff line Loading @@ -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() } } } Loading
cc/cc_test.go +13 −11 Original line number Diff line number Diff line Loading @@ -3153,7 +3153,7 @@ func TestImageVariants(t *testing.T) { testDepWithVariant("product") } func TestVendorOrProductVariantUsesPlatformSdkVersionAsDefault(t *testing.T) { func TestVendorSdkVersion(t *testing.T) { t.Parallel() bp := ` Loading @@ -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) { Loading