summaryrefslogtreecommitdiff
path: root/java/java.go
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2020-11-16 23:11:10 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-11-16 23:11:10 +0000
commitf15c0558bfdd87b2b04f6f074142bd9b35ee1011 (patch)
tree3cffc766909404fcfdd1717adf6e982537f1e44b /java/java.go
parentbc1f77e59017ee55fbdaff0d0d8f5cd82d85b47d (diff)
parent62a0cfd05460d0e760ce9133690e48861bb57eee (diff)
Merge changes Ic22603a5,I5330b571
* changes: Annotate dependency tags for dependencies of installed files Use the the preferred architecture symlink as the tool path if it exists
Diffstat (limited to 'java/java.go')
-rw-r--r--java/java.go19
1 files changed, 16 insertions, 3 deletions
diff --git a/java/java.go b/java/java.go
index d6dc148a6..d04968510 100644
--- a/java/java.go
+++ b/java/java.go
@@ -547,6 +547,14 @@ type dependencyTag struct {
name string
}
+// installDependencyTag is a dependency tag that is annotated to cause the installed files of the
+// dependency to be installed when the parent module is installed.
+type installDependencyTag struct {
+ blueprint.BaseDependencyTag
+ android.InstallAlwaysNeededDependencyTag
+ name string
+}
+
type usesLibraryDependencyTag struct {
dependencyTag
sdkVersion int // SDK version in which the library appared as a standalone library.
@@ -580,6 +588,8 @@ var (
instrumentationForTag = dependencyTag{name: "instrumentation_for"}
extraLintCheckTag = dependencyTag{name: "extra-lint-check"}
jniLibTag = dependencyTag{name: "jnilib"}
+ jniInstallTag = installDependencyTag{name: "jni install"}
+ binaryInstallTag = installDependencyTag{name: "binary install"}
usesLibTag = makeUsesLibraryDependencyTag(dexpreopt.AnySdkVersion)
usesLibCompat28Tag = makeUsesLibraryDependencyTag(28)
usesLibCompat29Tag = makeUsesLibraryDependencyTag(29)
@@ -2550,9 +2560,12 @@ func (j *Binary) DepsMutator(ctx android.BottomUpMutatorContext) {
if ctx.Arch().ArchType == android.Common {
j.deps(ctx)
} else {
- // This dependency ensures the host installation rules will install the jni libraries
- // when the wrapper is installed.
- ctx.AddVariationDependencies(nil, jniLibTag, j.binaryProperties.Jni_libs...)
+ // These dependencies ensure the host installation rules will install the jar file and
+ // the jni libraries when the wrapper is installed.
+ ctx.AddVariationDependencies(nil, jniInstallTag, j.binaryProperties.Jni_libs...)
+ ctx.AddVariationDependencies(
+ []blueprint.Variation{{Mutator: "arch", Variation: android.CommonArch.String()}},
+ binaryInstallTag, ctx.ModuleName())
}
}