Error if vendor apex adds an LLNDK library
This is a common mistake when creating a vendor apex. They often try to list all dependencies. Adding an LLNDK results in putting a stub library in APEX, which simply doesn't work. This change prevents stubs from being added to APEX. Bug: 314033460 Test: go test ./apex Change-Id: Ic3365047028d9ab6f06992d52aece5a3890177bb
This commit is contained in:
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:
|
||||
|
Reference in New Issue
Block a user