sdk_version: "module_current" is supported
module_* is a new API surface for OS modules (e.g. APEXes). It has slightly bigger API surface than the system_* SDK. Specifically, APIs with @SystemApi(client=MODULE_LIBRARIES) are added there. Bug: 146757305 Test: m Change-Id: I8980e50c0e3a4cd843048e0de1f638e854384f46
This commit is contained in:
parent
67edce7adb
commit
50146e9c8e
15
java/java.go
15
java/java.go
|
@ -757,9 +757,12 @@ func checkProducesJars(ctx android.ModuleContext, dep android.SourceFileProducer
|
|||
type linkType int
|
||||
|
||||
const (
|
||||
// TODO(jiyong) rename these for better readability. Make the allowed
|
||||
// and disallowed link types explicit
|
||||
javaCore linkType = iota
|
||||
javaSdk
|
||||
javaSystem
|
||||
javaModule
|
||||
javaPlatform
|
||||
)
|
||||
|
||||
|
@ -789,6 +792,10 @@ func (m *Module) getLinkType(name string) (ret linkType, stubs bool) {
|
|||
return javaSdk, true
|
||||
case ver.kind == sdkPublic:
|
||||
return javaSdk, false
|
||||
case name == "android_module_lib_stubs_current":
|
||||
return javaModule, true
|
||||
case ver.kind == sdkModule:
|
||||
return javaModule, false
|
||||
case ver.kind == sdkPrivate || ver.kind == sdkNone || ver.kind == sdkCorePlatform:
|
||||
return javaPlatform, false
|
||||
case !ver.valid():
|
||||
|
@ -824,11 +831,17 @@ func checkLinkType(ctx android.ModuleContext, from *Module, to linkTypeContext,
|
|||
}
|
||||
break
|
||||
case javaSystem:
|
||||
if otherLinkType == javaPlatform {
|
||||
if otherLinkType == javaPlatform || otherLinkType == javaModule {
|
||||
ctx.ModuleErrorf("compiles against system API, but dependency %q is compiling against private API."+commonMessage,
|
||||
ctx.OtherModuleName(to))
|
||||
}
|
||||
break
|
||||
case javaModule:
|
||||
if otherLinkType == javaPlatform {
|
||||
ctx.ModuleErrorf("compiles against module API, but dependency %q is compiling against private API."+commonMessage,
|
||||
ctx.OtherModuleName(to))
|
||||
}
|
||||
break
|
||||
case javaPlatform:
|
||||
// no restriction on link-type
|
||||
break
|
||||
|
|
|
@ -71,6 +71,7 @@ const (
|
|||
sdkPublic
|
||||
sdkSystem
|
||||
sdkTest
|
||||
sdkModule
|
||||
sdkPrivate
|
||||
)
|
||||
|
||||
|
@ -91,6 +92,8 @@ func (k sdkKind) String() string {
|
|||
return "core"
|
||||
case sdkCorePlatform:
|
||||
return "core_platform"
|
||||
case sdkModule:
|
||||
return "module"
|
||||
default:
|
||||
return "invalid"
|
||||
}
|
||||
|
@ -256,6 +259,8 @@ func sdkSpecFrom(str string) sdkSpec {
|
|||
kind = sdkSystem
|
||||
case "test":
|
||||
kind = sdkTest
|
||||
case "module":
|
||||
kind = sdkModule
|
||||
default:
|
||||
return sdkSpec{sdkInvalid, sdkVersionNone, str}
|
||||
}
|
||||
|
@ -382,6 +387,9 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext sdkContext) sdkDep
|
|||
return toModule("android_test_stubs_current", "framework-res", sdkFrameworkAidlPath(ctx))
|
||||
case sdkCore:
|
||||
return toModule("core.current.stubs", "", nil)
|
||||
case sdkModule:
|
||||
// TODO(146757305): provide .apk and .aidl that have more APIs for modules
|
||||
return toModule("android_module_lib_stubs_current", "framework-res", sdkFrameworkAidlPath(ctx))
|
||||
default:
|
||||
panic(fmt.Errorf("invalid sdk %q", sdkVersion.raw))
|
||||
}
|
||||
|
|
|
@ -211,6 +211,15 @@ func TestClasspath(t *testing.T) {
|
|||
java8classpath: []string{"prebuilts/sdk/29/public/android.jar", "prebuilts/sdk/tools/core-lambda-stubs.jar"},
|
||||
aidl: "-pprebuilts/sdk/29/public/framework.aidl",
|
||||
},
|
||||
{
|
||||
|
||||
name: "module_current",
|
||||
properties: `sdk_version: "module_current",`,
|
||||
bootclasspath: []string{"android_module_lib_stubs_current", "core-lambda-stubs"},
|
||||
system: "core-current-stubs-system-modules",
|
||||
java9classpath: []string{"android_module_lib_stubs_current"},
|
||||
aidl: "-p" + buildDir + "/framework.aidl",
|
||||
},
|
||||
}
|
||||
|
||||
for _, testcase := range classpathTestcases {
|
||||
|
|
|
@ -142,6 +142,7 @@ func GatherRequiredDepsForTest() string {
|
|||
"android_stubs_current",
|
||||
"android_system_stubs_current",
|
||||
"android_test_stubs_current",
|
||||
"android_module_lib_stubs_current",
|
||||
"core.current.stubs",
|
||||
"core.platform.api.stubs",
|
||||
"kotlin-stdlib",
|
||||
|
|
Loading…
Reference in New Issue