Add dependency license annotations
Add annotations to dependency tags that are dynamic or classpath linkage. Bug: 207445310 Test: m checkbuild Change-Id: Ife89b8f234aa40c380c721eda7dd18cab697fbb3
This commit is contained in:
parent
3dd2ff28ed
commit
b674b43656
4 changed files with 47 additions and 12 deletions
9
cc/cc.go
9
cc/cc.go
|
@ -682,6 +682,15 @@ func (d libraryDependencyTag) static() bool {
|
|||
return d.Kind == staticLibraryDependency
|
||||
}
|
||||
|
||||
func (d libraryDependencyTag) LicenseAnnotations() []android.LicenseAnnotation {
|
||||
if d.shared() {
|
||||
return []android.LicenseAnnotation{android.LicenseAnnotationSharedDependency}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var _ android.LicenseAnnotationsDependencyTag = libraryDependencyTag{}
|
||||
|
||||
// InstallDepNeeded returns true for shared libraries so that shared library dependencies of
|
||||
// binaries or other shared libraries are installed as dependencies.
|
||||
func (d libraryDependencyTag) InstallDepNeeded() bool {
|
||||
|
|
|
@ -110,6 +110,7 @@ type HostToolProvider interface {
|
|||
|
||||
type hostToolDependencyTag struct {
|
||||
blueprint.BaseDependencyTag
|
||||
android.LicenseAnnotationToolchainDependencyTag
|
||||
label string
|
||||
}
|
||||
type generatorProperties struct {
|
||||
|
|
31
java/java.go
31
java/java.go
|
@ -270,6 +270,9 @@ func (j *Module) InstallBypassMake() bool { return true }
|
|||
type dependencyTag struct {
|
||||
blueprint.BaseDependencyTag
|
||||
name string
|
||||
|
||||
// True if the dependency is relinked at runtime.
|
||||
runtimeLinked bool
|
||||
}
|
||||
|
||||
// installDependencyTag is a dependency tag that is annotated to cause the installed files of the
|
||||
|
@ -280,6 +283,15 @@ type installDependencyTag struct {
|
|||
name string
|
||||
}
|
||||
|
||||
func (d dependencyTag) LicenseAnnotations() []android.LicenseAnnotation {
|
||||
if d.runtimeLinked {
|
||||
return []android.LicenseAnnotation{android.LicenseAnnotationSharedDependency}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var _ android.LicenseAnnotationsDependencyTag = dependencyTag{}
|
||||
|
||||
type usesLibraryDependencyTag struct {
|
||||
dependencyTag
|
||||
|
||||
|
@ -296,7 +308,10 @@ type usesLibraryDependencyTag struct {
|
|||
|
||||
func makeUsesLibraryDependencyTag(sdkVersion int, optional bool, implicit bool) usesLibraryDependencyTag {
|
||||
return usesLibraryDependencyTag{
|
||||
dependencyTag: dependencyTag{name: fmt.Sprintf("uses-library-%d", sdkVersion)},
|
||||
dependencyTag: dependencyTag{
|
||||
name: fmt.Sprintf("uses-library-%d", sdkVersion),
|
||||
runtimeLinked: true,
|
||||
},
|
||||
sdkVersion: sdkVersion,
|
||||
optional: optional,
|
||||
implicit: implicit,
|
||||
|
@ -310,22 +325,22 @@ func IsJniDepTag(depTag blueprint.DependencyTag) bool {
|
|||
var (
|
||||
dataNativeBinsTag = dependencyTag{name: "dataNativeBins"}
|
||||
staticLibTag = dependencyTag{name: "staticlib"}
|
||||
libTag = dependencyTag{name: "javalib"}
|
||||
java9LibTag = dependencyTag{name: "java9lib"}
|
||||
libTag = dependencyTag{name: "javalib", runtimeLinked: true}
|
||||
java9LibTag = dependencyTag{name: "java9lib", runtimeLinked: true}
|
||||
pluginTag = dependencyTag{name: "plugin"}
|
||||
errorpronePluginTag = dependencyTag{name: "errorprone-plugin"}
|
||||
exportedPluginTag = dependencyTag{name: "exported-plugin"}
|
||||
bootClasspathTag = dependencyTag{name: "bootclasspath"}
|
||||
systemModulesTag = dependencyTag{name: "system modules"}
|
||||
bootClasspathTag = dependencyTag{name: "bootclasspath", runtimeLinked: true}
|
||||
systemModulesTag = dependencyTag{name: "system modules", runtimeLinked: true}
|
||||
frameworkResTag = dependencyTag{name: "framework-res"}
|
||||
kotlinStdlibTag = dependencyTag{name: "kotlin-stdlib"}
|
||||
kotlinAnnotationsTag = dependencyTag{name: "kotlin-annotations"}
|
||||
kotlinStdlibTag = dependencyTag{name: "kotlin-stdlib", runtimeLinked: true}
|
||||
kotlinAnnotationsTag = dependencyTag{name: "kotlin-annotations", runtimeLinked: true}
|
||||
kotlinPluginTag = dependencyTag{name: "kotlin-plugin"}
|
||||
proguardRaiseTag = dependencyTag{name: "proguard-raise"}
|
||||
certificateTag = dependencyTag{name: "certificate"}
|
||||
instrumentationForTag = dependencyTag{name: "instrumentation_for"}
|
||||
extraLintCheckTag = dependencyTag{name: "extra-lint-check"}
|
||||
jniLibTag = dependencyTag{name: "jnilib"}
|
||||
jniLibTag = dependencyTag{name: "jnilib", runtimeLinked: true}
|
||||
syspropPublicStubDepTag = dependencyTag{name: "sysprop public stub"}
|
||||
jniInstallTag = installDependencyTag{name: "jni install"}
|
||||
binaryInstallTag = installDependencyTag{name: "binary install"}
|
||||
|
|
12
rust/rust.go
12
rust/rust.go
|
@ -969,6 +969,7 @@ type dependencyTag struct {
|
|||
name string
|
||||
library bool
|
||||
procMacro bool
|
||||
dynamic bool
|
||||
}
|
||||
|
||||
// InstallDepNeeded returns true for rlibs, dylibs, and proc macros so that they or their transitive
|
||||
|
@ -979,10 +980,19 @@ func (d dependencyTag) InstallDepNeeded() bool {
|
|||
|
||||
var _ android.InstallNeededDependencyTag = dependencyTag{}
|
||||
|
||||
func (d dependencyTag) LicenseAnnotations() []android.LicenseAnnotation {
|
||||
if d.library && d.dynamic {
|
||||
return []android.LicenseAnnotation{android.LicenseAnnotationSharedDependency}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var _ android.LicenseAnnotationsDependencyTag = dependencyTag{}
|
||||
|
||||
var (
|
||||
customBindgenDepTag = dependencyTag{name: "customBindgenTag"}
|
||||
rlibDepTag = dependencyTag{name: "rlibTag", library: true}
|
||||
dylibDepTag = dependencyTag{name: "dylib", library: true}
|
||||
dylibDepTag = dependencyTag{name: "dylib", library: true, dynamic: true}
|
||||
procMacroDepTag = dependencyTag{name: "procMacro", procMacro: true}
|
||||
testPerSrcDepTag = dependencyTag{name: "rust_unit_tests"}
|
||||
sourceDepTag = dependencyTag{name: "source"}
|
||||
|
|
Loading…
Reference in a new issue