Change deptag for sdk deps to help distinguish
Test: m nothing before and after and diff build.ninja files Change-Id: Idc4c7f86d3e626bd1ee2f90ae3c6fb755644a605
This commit is contained in:
@@ -439,7 +439,7 @@ func aaptLibs(ctx android.ModuleContext, sdkContext android.SdkContext, classLoa
|
|||||||
switch depTag {
|
switch depTag {
|
||||||
case instrumentationForTag:
|
case instrumentationForTag:
|
||||||
// Nothing, instrumentationForTag is treated as libTag for javac but not for aapt2.
|
// Nothing, instrumentationForTag is treated as libTag for javac but not for aapt2.
|
||||||
case libTag:
|
case sdkLibTag, libTag:
|
||||||
if exportPackage != nil {
|
if exportPackage != nil {
|
||||||
sharedLibs = append(sharedLibs, exportPackage)
|
sharedLibs = append(sharedLibs, exportPackage)
|
||||||
}
|
}
|
||||||
|
@@ -530,7 +530,7 @@ func (j *Module) checkSdkVersions(ctx android.ModuleContext) {
|
|||||||
// TODO(satayev): cover other types as well, e.g. imports
|
// TODO(satayev): cover other types as well, e.g. imports
|
||||||
case *Library, *AndroidLibrary:
|
case *Library, *AndroidLibrary:
|
||||||
switch tag {
|
switch tag {
|
||||||
case bootClasspathTag, libTag, staticLibTag, java9LibTag:
|
case bootClasspathTag, sdkLibTag, libTag, staticLibTag, java9LibTag:
|
||||||
j.checkSdkLinkType(ctx, module.(moduleWithSdkDep), tag.(dependencyTag))
|
j.checkSdkLinkType(ctx, module.(moduleWithSdkDep), tag.(dependencyTag))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1955,7 +1955,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
|||||||
|
|
||||||
if dep, ok := module.(SdkLibraryDependency); ok {
|
if dep, ok := module.(SdkLibraryDependency); ok {
|
||||||
switch tag {
|
switch tag {
|
||||||
case libTag:
|
case sdkLibTag, libTag:
|
||||||
depHeaderJars := dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))
|
depHeaderJars := dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))
|
||||||
deps.classpath = append(deps.classpath, depHeaderJars...)
|
deps.classpath = append(deps.classpath, depHeaderJars...)
|
||||||
deps.dexClasspath = append(deps.dexClasspath, depHeaderJars...)
|
deps.dexClasspath = append(deps.dexClasspath, depHeaderJars...)
|
||||||
@@ -1975,7 +1975,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
|||||||
switch tag {
|
switch tag {
|
||||||
case bootClasspathTag:
|
case bootClasspathTag:
|
||||||
deps.bootClasspath = append(deps.bootClasspath, dep.HeaderJars...)
|
deps.bootClasspath = append(deps.bootClasspath, dep.HeaderJars...)
|
||||||
case libTag, instrumentationForTag:
|
case sdkLibTag, libTag, instrumentationForTag:
|
||||||
if _, ok := module.(*Plugin); ok {
|
if _, ok := module.(*Plugin); ok {
|
||||||
ctx.ModuleErrorf("a java_plugin (%s) cannot be used as a libs dependency", otherName)
|
ctx.ModuleErrorf("a java_plugin (%s) cannot be used as a libs dependency", otherName)
|
||||||
}
|
}
|
||||||
@@ -2048,7 +2048,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
|||||||
}
|
}
|
||||||
} else if dep, ok := module.(android.SourceFileProducer); ok {
|
} else if dep, ok := module.(android.SourceFileProducer); ok {
|
||||||
switch tag {
|
switch tag {
|
||||||
case libTag:
|
case sdkLibTag, libTag:
|
||||||
checkProducesJars(ctx, dep)
|
checkProducesJars(ctx, dep)
|
||||||
deps.classpath = append(deps.classpath, dep.Srcs()...)
|
deps.classpath = append(deps.classpath, dep.Srcs()...)
|
||||||
deps.dexClasspath = append(deps.classpath, dep.Srcs()...)
|
deps.dexClasspath = append(deps.classpath, dep.Srcs()...)
|
||||||
|
@@ -267,7 +267,7 @@ func (j *Javadoc) addDeps(ctx android.BottomUpMutatorContext) {
|
|||||||
ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.bootclasspath...)
|
ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.bootclasspath...)
|
||||||
ctx.AddVariationDependencies(nil, systemModulesTag, sdkDep.systemModules)
|
ctx.AddVariationDependencies(nil, systemModulesTag, sdkDep.systemModules)
|
||||||
ctx.AddVariationDependencies(nil, java9LibTag, sdkDep.java9Classpath...)
|
ctx.AddVariationDependencies(nil, java9LibTag, sdkDep.java9Classpath...)
|
||||||
ctx.AddVariationDependencies(nil, libTag, sdkDep.classpath...)
|
ctx.AddVariationDependencies(nil, sdkLibTag, sdkDep.classpath...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -367,7 +367,7 @@ func (j *Javadoc) collectDeps(ctx android.ModuleContext) deps {
|
|||||||
} else {
|
} else {
|
||||||
panic(fmt.Errorf("unknown dependency %q for %q", otherName, ctx.ModuleName()))
|
panic(fmt.Errorf("unknown dependency %q for %q", otherName, ctx.ModuleName()))
|
||||||
}
|
}
|
||||||
case libTag:
|
case libTag, sdkLibTag:
|
||||||
if dep, ok := module.(SdkLibraryDependency); ok {
|
if dep, ok := module.(SdkLibraryDependency); ok {
|
||||||
deps.classpath = append(deps.classpath, dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))...)
|
deps.classpath = append(deps.classpath, dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))...)
|
||||||
} else if ctx.OtherModuleHasProvider(module, JavaInfoProvider) {
|
} else if ctx.OtherModuleHasProvider(module, JavaInfoProvider) {
|
||||||
|
11
java/java.go
11
java/java.go
@@ -348,6 +348,7 @@ var (
|
|||||||
dataDeviceBinsTag = dependencyTag{name: "dataDeviceBins"}
|
dataDeviceBinsTag = dependencyTag{name: "dataDeviceBins"}
|
||||||
staticLibTag = dependencyTag{name: "staticlib"}
|
staticLibTag = dependencyTag{name: "staticlib"}
|
||||||
libTag = dependencyTag{name: "javalib", runtimeLinked: true}
|
libTag = dependencyTag{name: "javalib", runtimeLinked: true}
|
||||||
|
sdkLibTag = dependencyTag{name: "sdklib", runtimeLinked: true}
|
||||||
java9LibTag = dependencyTag{name: "java9lib", runtimeLinked: true}
|
java9LibTag = dependencyTag{name: "java9lib", runtimeLinked: true}
|
||||||
pluginTag = dependencyTag{name: "plugin", toolchain: true}
|
pluginTag = dependencyTag{name: "plugin", toolchain: true}
|
||||||
errorpronePluginTag = dependencyTag{name: "errorprone-plugin", toolchain: true}
|
errorpronePluginTag = dependencyTag{name: "errorprone-plugin", toolchain: true}
|
||||||
@@ -374,7 +375,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func IsLibDepTag(depTag blueprint.DependencyTag) bool {
|
func IsLibDepTag(depTag blueprint.DependencyTag) bool {
|
||||||
return depTag == libTag
|
return depTag == libTag || depTag == sdkLibTag
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsStaticLibDepTag(depTag blueprint.DependencyTag) bool {
|
func IsStaticLibDepTag(depTag blueprint.DependencyTag) bool {
|
||||||
@@ -427,7 +428,7 @@ func sdkDeps(ctx android.BottomUpMutatorContext, sdkContext android.SdkContext,
|
|||||||
if sdkDep.useModule {
|
if sdkDep.useModule {
|
||||||
ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.bootclasspath...)
|
ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.bootclasspath...)
|
||||||
ctx.AddVariationDependencies(nil, java9LibTag, sdkDep.java9Classpath...)
|
ctx.AddVariationDependencies(nil, java9LibTag, sdkDep.java9Classpath...)
|
||||||
ctx.AddVariationDependencies(nil, libTag, sdkDep.classpath...)
|
ctx.AddVariationDependencies(nil, sdkLibTag, sdkDep.classpath...)
|
||||||
if d.effectiveOptimizeEnabled() && sdkDep.hasStandardLibs() {
|
if d.effectiveOptimizeEnabled() && sdkDep.hasStandardLibs() {
|
||||||
ctx.AddVariationDependencies(nil, proguardRaiseTag, config.LegacyCorePlatformBootclasspathLibraries...)
|
ctx.AddVariationDependencies(nil, proguardRaiseTag, config.LegacyCorePlatformBootclasspathLibraries...)
|
||||||
}
|
}
|
||||||
@@ -1654,7 +1655,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
if ctx.OtherModuleHasProvider(module, JavaInfoProvider) {
|
if ctx.OtherModuleHasProvider(module, JavaInfoProvider) {
|
||||||
dep := ctx.OtherModuleProvider(module, JavaInfoProvider).(JavaInfo)
|
dep := ctx.OtherModuleProvider(module, JavaInfoProvider).(JavaInfo)
|
||||||
switch tag {
|
switch tag {
|
||||||
case libTag:
|
case libTag, sdkLibTag:
|
||||||
flags.classpath = append(flags.classpath, dep.HeaderJars...)
|
flags.classpath = append(flags.classpath, dep.HeaderJars...)
|
||||||
flags.dexClasspath = append(flags.dexClasspath, dep.HeaderJars...)
|
flags.dexClasspath = append(flags.dexClasspath, dep.HeaderJars...)
|
||||||
case staticLibTag:
|
case staticLibTag:
|
||||||
@@ -1664,7 +1665,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
}
|
}
|
||||||
} else if dep, ok := module.(SdkLibraryDependency); ok {
|
} else if dep, ok := module.(SdkLibraryDependency); ok {
|
||||||
switch tag {
|
switch tag {
|
||||||
case libTag:
|
case libTag, sdkLibTag:
|
||||||
flags.classpath = append(flags.classpath, dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))...)
|
flags.classpath = append(flags.classpath, dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2178,7 +2179,7 @@ func addCLCFromDep(ctx android.ModuleContext, depModule android.Module,
|
|||||||
}
|
}
|
||||||
|
|
||||||
depTag := ctx.OtherModuleDependencyTag(depModule)
|
depTag := ctx.OtherModuleDependencyTag(depModule)
|
||||||
if depTag == libTag {
|
if IsLibDepTag(depTag) {
|
||||||
// Ok, propagate <uses-library> through non-static library dependencies.
|
// Ok, propagate <uses-library> through non-static library dependencies.
|
||||||
} else if tag, ok := depTag.(usesLibraryDependencyTag); ok && tag.sdkVersion == dexpreopt.AnySdkVersion {
|
} else if tag, ok := depTag.(usesLibraryDependencyTag); ok && tag.sdkVersion == dexpreopt.AnySdkVersion {
|
||||||
// Ok, propagate <uses-library> through non-compatibility <uses-library> dependencies.
|
// Ok, propagate <uses-library> through non-compatibility <uses-library> dependencies.
|
||||||
|
@@ -23,6 +23,7 @@ import (
|
|||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
"android/soong/java/config"
|
"android/soong/java/config"
|
||||||
"android/soong/tradefed"
|
"android/soong/tradefed"
|
||||||
|
|
||||||
"github.com/google/blueprint/proptools"
|
"github.com/google/blueprint/proptools"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -166,7 +167,7 @@ func (r *robolectricTest) GenerateAndroidBuildActions(ctx android.ModuleContext)
|
|||||||
instrumentedApp.implementationAndResourcesJar,
|
instrumentedApp.implementationAndResourcesJar,
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, dep := range ctx.GetDirectDepsWithTag(libTag) {
|
handleLibDeps := func(dep android.Module) {
|
||||||
m := ctx.OtherModuleProvider(dep, JavaInfoProvider).(JavaInfo)
|
m := ctx.OtherModuleProvider(dep, JavaInfoProvider).(JavaInfo)
|
||||||
r.libs = append(r.libs, ctx.OtherModuleName(dep))
|
r.libs = append(r.libs, ctx.OtherModuleName(dep))
|
||||||
if !android.InList(ctx.OtherModuleName(dep), config.FrameworkLibraries) {
|
if !android.InList(ctx.OtherModuleName(dep), config.FrameworkLibraries) {
|
||||||
@@ -174,6 +175,13 @@ func (r *robolectricTest) GenerateAndroidBuildActions(ctx android.ModuleContext)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, dep := range ctx.GetDirectDepsWithTag(libTag) {
|
||||||
|
handleLibDeps(dep)
|
||||||
|
}
|
||||||
|
for _, dep := range ctx.GetDirectDepsWithTag(sdkLibTag) {
|
||||||
|
handleLibDeps(dep)
|
||||||
|
}
|
||||||
|
|
||||||
r.combinedJar = android.PathForModuleOut(ctx, "robolectric_combined", r.outputFile.Base())
|
r.combinedJar = android.PathForModuleOut(ctx, "robolectric_combined", r.outputFile.Base())
|
||||||
TransformJarsToJar(ctx, r.combinedJar, "combine jars", combinedJarJars, android.OptionalPath{},
|
TransformJarsToJar(ctx, r.combinedJar, "combine jars", combinedJarJars, android.OptionalPath{},
|
||||||
false, nil, nil)
|
false, nil, nil)
|
||||||
|
Reference in New Issue
Block a user