diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-07-12 01:05:11 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-07-12 01:05:11 +0000 |
commit | 9fab1220b9595744bb2f00e2e035116a91868ea8 (patch) | |
tree | 8ffa1bcd1dfb50c44b4d5fe7810d64aaeb0d14a0 | |
parent | 4a719a0ef033608e0116b6b9ac2f1add9d01a28c (diff) | |
parent | 57368eb5151b587c67272f5835f6b7dbdb7c0b26 (diff) | |
download | build_soong-9fab1220b9595744bb2f00e2e035116a91868ea8.tar.gz build_soong-9fab1220b9595744bb2f00e2e035116a91868ea8.tar.bz2 build_soong-9fab1220b9595744bb2f00e2e035116a91868ea8.zip |
Merge "Change link type rule"
-rw-r--r-- | java/sdk_library.go | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/java/sdk_library.go b/java/sdk_library.go index e4cfd417..e65af65f 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -46,6 +46,7 @@ var ( publicApiStubsTag = dependencyTag{name: "public"} systemApiStubsTag = dependencyTag{name: "system"} testApiStubsTag = dependencyTag{name: "test"} + implLibTag = dependencyTag{name: "platform"} ) type apiScope int @@ -127,6 +128,7 @@ type sdkLibrary struct { publicApiStubsPath android.Paths systemApiStubsPath android.Paths testApiStubsPath android.Paths + implLibPath android.Paths } func (module *sdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) { @@ -134,24 +136,27 @@ func (module *sdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) { ctx.AddDependency(ctx.Module(), publicApiStubsTag, module.stubsName(apiScopePublic)) ctx.AddDependency(ctx.Module(), systemApiStubsTag, module.stubsName(apiScopeSystem)) ctx.AddDependency(ctx.Module(), testApiStubsTag, module.stubsName(apiScopeTest)) + ctx.AddDependency(ctx.Module(), implLibTag, module.implName()) } func (module *sdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) { - // Record the paths to the header jars of the stubs library. + // Record the paths to the header jars of the library (stubs and impl). // When this java_sdk_library is dependened from others via "libs" property, // the recorded paths will be returned depending on the link type of the caller. ctx.VisitDirectDeps(func(to android.Module) { otherName := ctx.OtherModuleName(to) tag := ctx.OtherModuleDependencyTag(to) - if stubs, ok := to.(Dependency); ok { + if lib, ok := to.(Dependency); ok { switch tag { case publicApiStubsTag: - module.publicApiStubsPath = stubs.HeaderJars() + module.publicApiStubsPath = lib.HeaderJars() case systemApiStubsTag: - module.systemApiStubsPath = stubs.HeaderJars() + module.systemApiStubsPath = lib.HeaderJars() case testApiStubsTag: - module.testApiStubsPath = stubs.HeaderJars() + module.testApiStubsPath = lib.HeaderJars() + case implLibTag: + module.implLibPath = lib.HeaderJars() default: ctx.ModuleErrorf("depends on module %q of unknown tag %q", otherName, tag) } @@ -543,8 +548,10 @@ func (module *sdkLibrary) createXmlFile(mctx android.TopDownMutatorContext) { // to satisfy SdkLibraryDependency interface func (module *sdkLibrary) HeaderJars(linkType linkType) android.Paths { // This module is just a wrapper for the stubs. - if linkType == javaSystem || linkType == javaPlatform { + if linkType == javaSystem { return module.systemApiStubsPath + } else if linkType == javaPlatform { + return module.implLibPath } else { return module.publicApiStubsPath } |