Merge "Correct link type for module stubs" into rvc-dev am: 1733d6acf8

Change-Id: Ia5df51ecc76e9490aa94937ff8ba8eb92470dc5e
This commit is contained in:
Anton Hansson 2020-05-28 09:01:27 +00:00 committed by Automerger Merge Worker
commit 7be6199af1
2 changed files with 22 additions and 0 deletions

View file

@ -856,6 +856,10 @@ func (m *Module) getLinkType(name string) (ret linkType, stubs bool) {
return javaSystem, true
}
if stub, linkType := moduleStubLinkType(name); stub {
return linkType, true
}
ver := m.sdkVersion()
switch ver.kind {
case sdkCore:

View file

@ -1558,6 +1558,24 @@ func (s *frameworkModulesNamingScheme) apiModuleName(scope *apiScope, baseName s
var _ sdkLibraryComponentNamingScheme = (*frameworkModulesNamingScheme)(nil)
func moduleStubLinkType(name string) (stub bool, ret linkType) {
// This suffix-based approach is fragile and could potentially mis-trigger.
// TODO(b/155164730): Clean this up when modules no longer reference sdk_lib stubs directly.
if strings.HasSuffix(name, ".stubs.public") || strings.HasSuffix(name, "-stubs-publicapi") {
return true, javaSdk
}
if strings.HasSuffix(name, ".stubs.system") || strings.HasSuffix(name, "-stubs-systemapi") {
return true, javaSystem
}
if strings.HasSuffix(name, ".stubs.module_lib") || strings.HasSuffix(name, "-stubs-module_libs_api") {
return true, javaModule
}
if strings.HasSuffix(name, ".stubs.test") {
return true, javaSystem
}
return false, javaPlatform
}
// java_sdk_library is a special Java library that provides optional platform APIs to apps.
// In practice, it can be viewed as a combination of several modules: 1) stubs library that clients
// are linked against to, 2) droiddoc module that internally generates API stubs source files,