Add make java.dependencyTag installable or not

java.dependencyTag now has a new field installable which contols whether
the dependency should be added as the install dep of the app or not.

This allows us to model all the dependency tags for Java using the same
struct.

Bug: N/A
Test: m
Change-Id: I9b1c7809a0bde3f15579aefd9bb34d828764b84b
This commit is contained in:
Jiyong Park
2024-05-15 20:40:56 +09:00
parent 5f0943f33f
commit 4384d294c3

View File

@@ -366,14 +366,14 @@ type dependencyTag struct {
toolchain bool toolchain bool
static bool static bool
installable bool
} }
// installDependencyTag is a dependency tag that is annotated to cause the installed files of the var _ android.InstallNeededDependencyTag = (*dependencyTag)(nil)
// dependency to be installed when the parent module is installed.
type installDependencyTag struct { func (d dependencyTag) InstallDepNeeded() bool {
blueprint.BaseDependencyTag return d.installable
android.InstallAlwaysNeededDependencyTag
name string
} }
func (d dependencyTag) LicenseAnnotations() []android.LicenseAnnotation { func (d dependencyTag) LicenseAnnotations() []android.LicenseAnnotation {
@@ -405,7 +405,7 @@ func makeUsesLibraryDependencyTag(sdkVersion int, optional bool) usesLibraryDepe
} }
func IsJniDepTag(depTag blueprint.DependencyTag) bool { func IsJniDepTag(depTag blueprint.DependencyTag) bool {
return depTag == jniLibTag return depTag == jniLibTag || depTag == jniInstallTag
} }
var ( var (
@@ -434,8 +434,8 @@ var (
javaApiContributionTag = dependencyTag{name: "java-api-contribution"} javaApiContributionTag = dependencyTag{name: "java-api-contribution"}
depApiSrcsTag = dependencyTag{name: "dep-api-srcs"} depApiSrcsTag = dependencyTag{name: "dep-api-srcs"}
aconfigDeclarationTag = dependencyTag{name: "aconfig-declaration"} aconfigDeclarationTag = dependencyTag{name: "aconfig-declaration"}
jniInstallTag = installDependencyTag{name: "jni install"} jniInstallTag = dependencyTag{name: "jni install", runtimeLinked: true, installable: true}
binaryInstallTag = installDependencyTag{name: "binary install"} binaryInstallTag = dependencyTag{name: "binary install", runtimeLinked: true, installable: true}
usesLibReqTag = makeUsesLibraryDependencyTag(dexpreopt.AnySdkVersion, false) usesLibReqTag = makeUsesLibraryDependencyTag(dexpreopt.AnySdkVersion, false)
usesLibOptTag = makeUsesLibraryDependencyTag(dexpreopt.AnySdkVersion, true) usesLibOptTag = makeUsesLibraryDependencyTag(dexpreopt.AnySdkVersion, true)
usesLibCompat28OptTag = makeUsesLibraryDependencyTag(28, true) usesLibCompat28OptTag = makeUsesLibraryDependencyTag(28, true)