From 241cd3747c797b1e908cfb37826b4e9731f4bd4c Mon Sep 17 00:00:00 2001 From: Sundong Ahn Date: Fri, 13 Jul 2018 16:16:44 +0900 Subject: [PATCH] Change classpath for droiddoc When the module type is SdkLibraryDependency, the classpath has been gotten from headerJar Becuase droiddoc uses src files when it builds, we should change to use ImplementationJars instead of headerJar. Bug: 77577799 Test: make -j Change-Id: I1a072be69d7edff5636ea80af700be7796c3b0fc --- java/droiddoc.go | 2 +- java/java.go | 1 + java/sdk_library.go | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/java/droiddoc.go b/java/droiddoc.go index 9ec2be813..53c75b5c5 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -485,7 +485,7 @@ func (j *Javadoc) collectDeps(ctx android.ModuleContext) deps { } else if sdkVersion == "" { linkType = javaPlatform } - deps.classpath = append(deps.classpath, dep.HeaderJars(linkType)...) + deps.classpath = append(deps.classpath, dep.ImplementationJars(linkType)...) case android.SourceFileProducer: checkProducesJars(ctx, dep) deps.classpath = append(deps.classpath, dep.Srcs()...) diff --git a/java/java.go b/java/java.go index 06d35644d..99af2f5ab 100644 --- a/java/java.go +++ b/java/java.go @@ -313,6 +313,7 @@ type Dependency interface { type SdkLibraryDependency interface { HeaderJars(linkType linkType) android.Paths + ImplementationJars(linkType linkType) android.Paths } type SrcDependency interface { diff --git a/java/sdk_library.go b/java/sdk_library.go index e65af65f4..3bac8f6f0 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -129,6 +129,11 @@ type sdkLibrary struct { systemApiStubsPath android.Paths testApiStubsPath android.Paths implLibPath android.Paths + + publicApiStubsImplPath android.Paths + systemApiStubsImplPath android.Paths + testApiStubsImplPath android.Paths + implLibImplPath android.Paths } func (module *sdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) { @@ -151,12 +156,16 @@ func (module *sdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) switch tag { case publicApiStubsTag: module.publicApiStubsPath = lib.HeaderJars() + module.publicApiStubsImplPath = lib.ImplementationJars() case systemApiStubsTag: module.systemApiStubsPath = lib.HeaderJars() + module.systemApiStubsImplPath = lib.ImplementationJars() case testApiStubsTag: module.testApiStubsPath = lib.HeaderJars() + module.testApiStubsImplPath = lib.ImplementationJars() case implLibTag: module.implLibPath = lib.HeaderJars() + module.implLibImplPath = lib.ImplementationJars() default: ctx.ModuleErrorf("depends on module %q of unknown tag %q", otherName, tag) } @@ -557,6 +566,18 @@ func (module *sdkLibrary) HeaderJars(linkType linkType) android.Paths { } } +// to satisfy SdkLibraryDependency interface +func (module *sdkLibrary) ImplementationJars(linkType linkType) android.Paths { + // This module is just a wrapper for the stubs. + if linkType == javaSystem { + return module.systemApiStubsImplPath + } else if linkType == javaPlatform { + return module.implLibImplPath + } else { + return module.publicApiStubsImplPath + } +} + func javaSdkLibraries(config android.Config) *[]string { return config.Once("javaSdkLibraries", func() interface{} { return &[]string{}