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 {
|
||||
case instrumentationForTag:
|
||||
// Nothing, instrumentationForTag is treated as libTag for javac but not for aapt2.
|
||||
case libTag:
|
||||
case sdkLibTag, libTag:
|
||||
if exportPackage != nil {
|
||||
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
|
||||
case *Library, *AndroidLibrary:
|
||||
switch tag {
|
||||
case bootClasspathTag, libTag, staticLibTag, java9LibTag:
|
||||
case bootClasspathTag, sdkLibTag, libTag, staticLibTag, java9LibTag:
|
||||
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 {
|
||||
switch tag {
|
||||
case libTag:
|
||||
case sdkLibTag, libTag:
|
||||
depHeaderJars := dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))
|
||||
deps.classpath = append(deps.classpath, depHeaderJars...)
|
||||
deps.dexClasspath = append(deps.dexClasspath, depHeaderJars...)
|
||||
@@ -1975,7 +1975,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
||||
switch tag {
|
||||
case bootClasspathTag:
|
||||
deps.bootClasspath = append(deps.bootClasspath, dep.HeaderJars...)
|
||||
case libTag, instrumentationForTag:
|
||||
case sdkLibTag, libTag, instrumentationForTag:
|
||||
if _, ok := module.(*Plugin); ok {
|
||||
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 {
|
||||
switch tag {
|
||||
case libTag:
|
||||
case sdkLibTag, libTag:
|
||||
checkProducesJars(ctx, dep)
|
||||
deps.classpath = 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, systemModulesTag, sdkDep.systemModules)
|
||||
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 {
|
||||
panic(fmt.Errorf("unknown dependency %q for %q", otherName, ctx.ModuleName()))
|
||||
}
|
||||
case libTag:
|
||||
case libTag, sdkLibTag:
|
||||
if dep, ok := module.(SdkLibraryDependency); ok {
|
||||
deps.classpath = append(deps.classpath, dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))...)
|
||||
} else if ctx.OtherModuleHasProvider(module, JavaInfoProvider) {
|
||||
|
11
java/java.go
11
java/java.go
@@ -348,6 +348,7 @@ var (
|
||||
dataDeviceBinsTag = dependencyTag{name: "dataDeviceBins"}
|
||||
staticLibTag = dependencyTag{name: "staticlib"}
|
||||
libTag = dependencyTag{name: "javalib", runtimeLinked: true}
|
||||
sdkLibTag = dependencyTag{name: "sdklib", runtimeLinked: true}
|
||||
java9LibTag = dependencyTag{name: "java9lib", runtimeLinked: true}
|
||||
pluginTag = dependencyTag{name: "plugin", toolchain: true}
|
||||
errorpronePluginTag = dependencyTag{name: "errorprone-plugin", toolchain: true}
|
||||
@@ -374,7 +375,7 @@ var (
|
||||
)
|
||||
|
||||
func IsLibDepTag(depTag blueprint.DependencyTag) bool {
|
||||
return depTag == libTag
|
||||
return depTag == libTag || depTag == sdkLibTag
|
||||
}
|
||||
|
||||
func IsStaticLibDepTag(depTag blueprint.DependencyTag) bool {
|
||||
@@ -427,7 +428,7 @@ func sdkDeps(ctx android.BottomUpMutatorContext, sdkContext android.SdkContext,
|
||||
if sdkDep.useModule {
|
||||
ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.bootclasspath...)
|
||||
ctx.AddVariationDependencies(nil, java9LibTag, sdkDep.java9Classpath...)
|
||||
ctx.AddVariationDependencies(nil, libTag, sdkDep.classpath...)
|
||||
ctx.AddVariationDependencies(nil, sdkLibTag, sdkDep.classpath...)
|
||||
if d.effectiveOptimizeEnabled() && sdkDep.hasStandardLibs() {
|
||||
ctx.AddVariationDependencies(nil, proguardRaiseTag, config.LegacyCorePlatformBootclasspathLibraries...)
|
||||
}
|
||||
@@ -1654,7 +1655,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
if ctx.OtherModuleHasProvider(module, JavaInfoProvider) {
|
||||
dep := ctx.OtherModuleProvider(module, JavaInfoProvider).(JavaInfo)
|
||||
switch tag {
|
||||
case libTag:
|
||||
case libTag, sdkLibTag:
|
||||
flags.classpath = append(flags.classpath, dep.HeaderJars...)
|
||||
flags.dexClasspath = append(flags.dexClasspath, dep.HeaderJars...)
|
||||
case staticLibTag:
|
||||
@@ -1664,7 +1665,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
}
|
||||
} else if dep, ok := module.(SdkLibraryDependency); ok {
|
||||
switch tag {
|
||||
case libTag:
|
||||
case libTag, sdkLibTag:
|
||||
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)
|
||||
if depTag == libTag {
|
||||
if IsLibDepTag(depTag) {
|
||||
// Ok, propagate <uses-library> through non-static library dependencies.
|
||||
} else if tag, ok := depTag.(usesLibraryDependencyTag); ok && tag.sdkVersion == dexpreopt.AnySdkVersion {
|
||||
// Ok, propagate <uses-library> through non-compatibility <uses-library> dependencies.
|
||||
|
@@ -23,6 +23,7 @@ import (
|
||||
"android/soong/android"
|
||||
"android/soong/java/config"
|
||||
"android/soong/tradefed"
|
||||
|
||||
"github.com/google/blueprint/proptools"
|
||||
)
|
||||
|
||||
@@ -166,7 +167,7 @@ func (r *robolectricTest) GenerateAndroidBuildActions(ctx android.ModuleContext)
|
||||
instrumentedApp.implementationAndResourcesJar,
|
||||
}
|
||||
|
||||
for _, dep := range ctx.GetDirectDepsWithTag(libTag) {
|
||||
handleLibDeps := func(dep android.Module) {
|
||||
m := ctx.OtherModuleProvider(dep, JavaInfoProvider).(JavaInfo)
|
||||
r.libs = append(r.libs, ctx.OtherModuleName(dep))
|
||||
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())
|
||||
TransformJarsToJar(ctx, r.combinedJar, "combine jars", combinedJarJars, android.OptionalPath{},
|
||||
false, nil, nil)
|
||||
|
Reference in New Issue
Block a user