Merge "Make java_sdk_library implement Dependency" am: 1cd8a57510 am: 78f9df046e

am: 9de4ae9c73

Change-Id: Iee1c80101337d1f0e770b026faa07e0cff7b604c
This commit is contained in:
Colin Cross 2019-02-12 17:30:29 -08:00 committed by android-build-merger
commit 6cb5df817b
3 changed files with 18 additions and 15 deletions

View File

@ -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()...)

View File

@ -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:

View File

@ -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)