Merge "Error if vendor apex adds an LLNDK library" into main am: 2588c54d01
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2858985 Change-Id: I05299415612f82859323831da1acf0c90943d2de Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
64a51889e8
2 changed files with 34 additions and 4 deletions
11
apex/apex.go
11
apex/apex.go
|
@ -2067,8 +2067,15 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext,
|
|||
switch depTag {
|
||||
case sharedLibTag, jniLibTag:
|
||||
isJniLib := depTag == jniLibTag
|
||||
propertyName := "native_shared_libs"
|
||||
if isJniLib {
|
||||
propertyName = "jni_libs"
|
||||
}
|
||||
switch ch := child.(type) {
|
||||
case *cc.Module:
|
||||
if ch.IsStubs() {
|
||||
ctx.PropertyErrorf(propertyName, "%q is a stub. Remove it from the list.", depName)
|
||||
}
|
||||
fi := apexFileForNativeLibrary(ctx, ch, vctx.handleSpecialLibs)
|
||||
fi.isJniLib = isJniLib
|
||||
vctx.filesInfo = append(vctx.filesInfo, fi)
|
||||
|
@ -2086,10 +2093,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext,
|
|||
vctx.filesInfo = append(vctx.filesInfo, fi)
|
||||
return true // track transitive dependencies
|
||||
default:
|
||||
propertyName := "native_shared_libs"
|
||||
if isJniLib {
|
||||
propertyName = "jni_libs"
|
||||
}
|
||||
ctx.PropertyErrorf(propertyName, "%q is not a cc_library or cc_library_shared module", depName)
|
||||
}
|
||||
case executableTag:
|
||||
|
|
|
@ -26,6 +26,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"android/soong/aconfig/codegen"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
"github.com/google/blueprint/proptools"
|
||||
|
||||
|
@ -960,6 +961,32 @@ func TestApexWithStubs(t *testing.T) {
|
|||
ensureListContains(t, names(apexManifestRule.Args["requireNativeLibs"]), "libfoo.shared_from_rust.so")
|
||||
}
|
||||
|
||||
func TestApexShouldNotEmbedStubVariant(t *testing.T) {
|
||||
testApexError(t, `module "myapex" .*: native_shared_libs: "libbar" is a stub`, `
|
||||
apex {
|
||||
name: "myapex",
|
||||
key: "myapex.key",
|
||||
vendor: true,
|
||||
updatable: false,
|
||||
native_shared_libs: ["libbar"], // should not add an LLNDK stub in a vendor apex
|
||||
}
|
||||
|
||||
apex_key {
|
||||
name: "myapex.key",
|
||||
public_key: "testkey.avbpubkey",
|
||||
private_key: "testkey.pem",
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "libbar",
|
||||
srcs: ["mylib.cpp"],
|
||||
llndk: {
|
||||
symbol_file: "libbar.map.txt",
|
||||
}
|
||||
}
|
||||
`)
|
||||
}
|
||||
|
||||
func TestApexCanUsePrivateApis(t *testing.T) {
|
||||
ctx := testApex(t, `
|
||||
apex {
|
||||
|
|
Loading…
Reference in a new issue