Restrict java_sdk_library in libs of java_import and droidstubs modules

These are all remaining usages of "magic", which are being removed with
this change. The follow up change will remove the "magic".

Test: m nothing --no-skip-soong-tests
Bug: 366069293
Change-Id: I4762682cb8696b435b9f0fb0f4c55ba2fa865f05
This commit is contained in:
Jihoon Kang
2024-09-18 23:10:55 +00:00
parent 125efc6c30
commit 0d28fd30e5
2 changed files with 10 additions and 7 deletions

View File

@@ -373,8 +373,11 @@ func (j *Javadoc) collectDeps(ctx android.ModuleContext) deps {
panic(fmt.Errorf("unknown dependency %q for %q", otherName, ctx.ModuleName()))
}
case libTag, sdkLibTag:
if dep, ok := module.(SdkLibraryDependency); ok {
deps.classpath = append(deps.classpath, dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))...)
if _, ok := module.(SdkLibraryDependency); ok {
sdkInfo, _ := android.OtherModuleProvider(ctx, module, SdkLibraryInfoProvider)
generatingLibsString := android.PrettyConcat(
getGeneratingLibs(ctx, j.SdkVersion(ctx), module.Name(), sdkInfo), true, "or")
ctx.ModuleErrorf("cannot depend directly on java_sdk_library %q; try depending on %s instead", module.Name(), generatingLibsString)
} else if dep, ok := android.OtherModuleProvider(ctx, module, JavaInfoProvider); ok {
deps.classpath = append(deps.classpath, dep.HeaderJars...)
deps.aidlIncludeDirs = append(deps.aidlIncludeDirs, dep.AidlIncludeDirs...)

View File

@@ -2700,13 +2700,13 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
transitiveBootClasspathHeaderJars = append(transitiveBootClasspathHeaderJars, dep.TransitiveStaticLibsHeaderJars)
}
}
} else if dep, ok := module.(SdkLibraryDependency); ok {
} else if _, ok := module.(SdkLibraryDependency); ok {
switch tag {
case libTag, sdkLibTag:
depHeaderJars := dep.SdkHeaderJars(ctx, j.SdkVersion(ctx))
flags.classpath = append(flags.classpath, depHeaderJars...)
transitiveClasspathHeaderJars = append(transitiveClasspathHeaderJars,
android.NewDepSet(android.PREORDER, depHeaderJars, nil))
sdkInfo, _ := android.OtherModuleProvider(ctx, module, SdkLibraryInfoProvider)
generatingLibsString := android.PrettyConcat(
getGeneratingLibs(ctx, j.SdkVersion(ctx), module.Name(), sdkInfo), true, "or")
ctx.ModuleErrorf("cannot depend directly on java_sdk_library %q; try depending on %s instead", module.Name(), generatingLibsString)
}
}