Do not install prebuilt stubs from module_sdk
This is a rework of commit 5bdf2d589c
which made implementation variant of prebuilts with stubs as not
installable except libclangrt. This change narrows the affected modules
to prebuilts/module_sdk because cc_prebuilt_library_shared with stub
implementation is a special case only used there. It's typical for
cc_prebuilt_library_shared to have implementation, not stub.
Bug: 220898484
Test: ART_MODULE_BUILD_FROM_SOURCE=false m nothing
Change-Id: I99e5213da8cc473901e23942b50f06c023d91f60
This commit is contained in:
@@ -16,7 +16,6 @@ package cc
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/bazel"
|
||||
@@ -208,12 +207,13 @@ func (p *prebuiltLibraryLinker) link(ctx ModuleContext,
|
||||
})
|
||||
|
||||
// TODO(b/220898484): Mainline module sdk prebuilts of stub libraries use a stub
|
||||
// library as their source and must not be installed, but libclang_rt.* libraries
|
||||
// have stubs because they are LLNDK libraries, but use an implementation library
|
||||
// as their source and need to be installed. This discrepancy should be resolved
|
||||
// without the prefix hack below.
|
||||
if p.hasStubsVariants() && !p.buildStubs() && !ctx.Host() &&
|
||||
!strings.HasPrefix(ctx.baseModuleName(), "libclang_rt.") {
|
||||
// library as their source and must not be installed, but other prebuilts like
|
||||
// libclang_rt.* libraries set `stubs` property because they are LLNDK libraries,
|
||||
// but use an implementation library as their source and need to be installed.
|
||||
// This discrepancy should be resolved without the prefix hack below.
|
||||
isModuleSdkPrebuilts := android.HasAnyPrefix(ctx.ModuleDir(), []string{
|
||||
"prebuilts/runtime/mainline/", "prebuilts/module_sdk/"})
|
||||
if p.hasStubsVariants() && !p.buildStubs() && !ctx.Host() && isModuleSdkPrebuilts {
|
||||
ctx.Module().MakeUninstallable()
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user