Make java_sdk_library implement Dependency
dexpreopting boot jars is going to need to visit both java_library and java_sdk_library modules. Since java_sdk_library is already a java_library module, move the SdkLibraryDependency methods out of the way so that it will implement Dependency. Also requries re-ording some of the type switches to check for the more-specific SdkLibraryDependency first. Test: TestJavaSdkLibrary Change-Id: I155c9ffaf31689dd150a4d99e07e432ff770b4a7
This commit is contained in:
@@ -630,10 +630,10 @@ func (j *Javadoc) collectDeps(ctx android.ModuleContext) deps {
|
||||
}
|
||||
case libTag:
|
||||
switch dep := module.(type) {
|
||||
case SdkLibraryDependency:
|
||||
deps.classpath = append(deps.classpath, dep.SdkImplementationJars(ctx, j.sdkVersion())...)
|
||||
case Dependency:
|
||||
deps.classpath = append(deps.classpath, dep.HeaderJars()...)
|
||||
case SdkLibraryDependency:
|
||||
deps.classpath = append(deps.classpath, dep.ImplementationJars(ctx, j.sdkVersion())...)
|
||||
case android.SourceFileProducer:
|
||||
checkProducesJars(ctx, dep)
|
||||
deps.classpath = append(deps.classpath, dep.Srcs()...)
|
||||
|
22
java/java.go
22
java/java.go
@@ -338,8 +338,8 @@ type Dependency interface {
|
||||
}
|
||||
|
||||
type SdkLibraryDependency interface {
|
||||
HeaderJars(ctx android.BaseContext, sdkVersion string) android.Paths
|
||||
ImplementationJars(ctx android.BaseContext, sdkVersion string) android.Paths
|
||||
SdkHeaderJars(ctx android.BaseContext, sdkVersion string) android.Paths
|
||||
SdkImplementationJars(ctx android.BaseContext, sdkVersion string) android.Paths
|
||||
}
|
||||
|
||||
type SrcDependency interface {
|
||||
@@ -698,6 +698,15 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
||||
}
|
||||
}
|
||||
switch dep := module.(type) {
|
||||
case SdkLibraryDependency:
|
||||
switch tag {
|
||||
case libTag:
|
||||
deps.classpath = append(deps.classpath, dep.SdkHeaderJars(ctx, j.sdkVersion())...)
|
||||
// names of sdk libs that are directly depended are exported
|
||||
j.exportedSdkLibs = append(j.exportedSdkLibs, otherName)
|
||||
default:
|
||||
ctx.ModuleErrorf("dependency on java_sdk_library %q can only be in libs", otherName)
|
||||
}
|
||||
case Dependency:
|
||||
switch tag {
|
||||
case bootClasspathTag:
|
||||
@@ -748,15 +757,6 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
||||
}
|
||||
|
||||
deps.aidlIncludeDirs = append(deps.aidlIncludeDirs, dep.AidlIncludeDirs()...)
|
||||
case SdkLibraryDependency:
|
||||
switch tag {
|
||||
case libTag:
|
||||
deps.classpath = append(deps.classpath, dep.HeaderJars(ctx, j.sdkVersion())...)
|
||||
// names of sdk libs that are directly depended are exported
|
||||
j.exportedSdkLibs = append(j.exportedSdkLibs, otherName)
|
||||
default:
|
||||
ctx.ModuleErrorf("dependency on java_sdk_library %q can only be in libs", otherName)
|
||||
}
|
||||
case android.SourceFileProducer:
|
||||
switch tag {
|
||||
case libTag:
|
||||
|
@@ -145,6 +145,9 @@ type sdkLibrary struct {
|
||||
testApiFilePath android.Path
|
||||
}
|
||||
|
||||
var _ Dependency = (*sdkLibrary)(nil)
|
||||
var _ SdkLibraryDependency = (*sdkLibrary)(nil)
|
||||
|
||||
func (module *sdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
// Add dependencies to the stubs library
|
||||
ctx.AddVariationDependencies(nil, publicApiStubsTag, module.stubsName(apiScopePublic))
|
||||
@@ -596,7 +599,7 @@ func (module *sdkLibrary) PrebuiltJars(ctx android.BaseContext, sdkVersion strin
|
||||
}
|
||||
|
||||
// to satisfy SdkLibraryDependency interface
|
||||
func (module *sdkLibrary) HeaderJars(ctx android.BaseContext, sdkVersion string) android.Paths {
|
||||
func (module *sdkLibrary) SdkHeaderJars(ctx android.BaseContext, sdkVersion string) android.Paths {
|
||||
// This module is just a wrapper for the stubs.
|
||||
if ctx.Config().UnbundledBuildPrebuiltSdks() {
|
||||
return module.PrebuiltJars(ctx, sdkVersion)
|
||||
@@ -612,7 +615,7 @@ func (module *sdkLibrary) HeaderJars(ctx android.BaseContext, sdkVersion string)
|
||||
}
|
||||
|
||||
// to satisfy SdkLibraryDependency interface
|
||||
func (module *sdkLibrary) ImplementationJars(ctx android.BaseContext, sdkVersion string) android.Paths {
|
||||
func (module *sdkLibrary) SdkImplementationJars(ctx android.BaseContext, sdkVersion string) android.Paths {
|
||||
// This module is just a wrapper for the stubs.
|
||||
if ctx.Config().UnbundledBuildPrebuiltSdks() {
|
||||
return module.PrebuiltJars(ctx, sdkVersion)
|
||||
|
Reference in New Issue
Block a user