Generate image variation without version

Current CC/Rust Image variations are generated with target VNDK version.
However, this is no longer valid if VNDK is deprecated. This change
generates image variation without version ("vendor", "product") if VNDK
is deprecated.

Bug: 316829758
Test: m nothing --no-skip-soong-tests passed
Test: aosp_cf_x86_64_phone build succeeded
Change-Id: I2387ed8a2632bfd9462621f882a947695ae1653d
This commit is contained in:
Kiyoung Kim
2024-01-03 14:24:34 +09:00
parent 202bc5b689
commit b5fdb2e966
8 changed files with 127 additions and 45 deletions

View File

@@ -26,6 +26,8 @@ import (
"android/soong/aidl_library"
"android/soong/android"
"github.com/google/blueprint"
)
func init() {
@@ -45,6 +47,14 @@ var prepareForCcTest = android.GroupFixturePreparers(
}),
)
// TODO(b/316829758) Update prepareForCcTest with this configuration and remove prepareForCcTestWithoutVndk
var prepareForCcTestWithoutVndk = android.GroupFixturePreparers(
PrepareForIntegrationTestWithCc,
android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
variables.VendorApiLevel = StringPtr("202404")
}),
)
var apexVariationName = "apex28"
var apexVersion = "28"
@@ -2640,6 +2650,7 @@ func TestLlndkLibrary(t *testing.T) {
name: "libexternal_headers",
export_include_dirs: ["include"],
vendor_available: true,
product_available: true,
}
cc_library_headers {
name: "libexternal_llndk_headers",
@@ -4784,3 +4795,51 @@ func TestStrippedAllOutputFile(t *testing.T) {
return
}
}
// TODO(b/316829758) Remove this test and do not set VNDK version from other tests
func TestImageVariantsWithoutVndk(t *testing.T) {
t.Parallel()
bp := `
cc_binary {
name: "binfoo",
srcs: ["binfoo.cc"],
vendor_available: true,
product_available: true,
shared_libs: ["libbar"]
}
cc_library {
name: "libbar",
srcs: ["libbar.cc"],
vendor_available: true,
product_available: true,
}
`
ctx := prepareForCcTestWithoutVndk.RunTestWithBp(t, bp)
hasDep := func(m android.Module, wantDep android.Module) bool {
t.Helper()
var found bool
ctx.VisitDirectDeps(m, func(dep blueprint.Module) {
if dep == wantDep {
found = true
}
})
return found
}
testDepWithVariant := func(imageVariant string) {
imageVariantStr := ""
if imageVariant != "core" {
imageVariantStr = "_" + imageVariant
}
binFooModule := ctx.ModuleForTests("binfoo", "android"+imageVariantStr+"_arm64_armv8-a").Module()
libBarModule := ctx.ModuleForTests("libbar", "android"+imageVariantStr+"_arm64_armv8-a_shared").Module()
android.AssertBoolEquals(t, "binfoo should have dependency on libbar with image variant "+imageVariant, true, hasDep(binFooModule, libBarModule))
}
testDepWithVariant("core")
testDepWithVariant("vendor")
testDepWithVariant("product")
}