Revert "Improve error reporting when depending on prebuilt implementation jar"
This reverts commit c61783b20d
.
Bug: 257969510
Reason for revert: b/255275437 - breaks checkbuild target
Change-Id: I01f88053cc24dbc1a4eb5c009f15473bdff3d565
This commit is contained in:
committed by
Gerrit Code Review
parent
c61783b20d
commit
7ed6ff8c76
80
java/java.go
80
java/java.go
@@ -86,11 +86,11 @@ func RegisterJavaSdkMemberTypes() {
|
||||
var (
|
||||
// Supports adding java header libraries to module_exports and sdk.
|
||||
javaHeaderLibsSdkMemberType = &librarySdkMemberType{
|
||||
SdkMemberTypeBase: android.SdkMemberTypeBase{
|
||||
android.SdkMemberTypeBase{
|
||||
PropertyName: "java_header_libs",
|
||||
SupportsSdk: true,
|
||||
},
|
||||
jarToExportGetter: func(_ android.SdkMemberContext, j *Library) android.Path {
|
||||
func(_ android.SdkMemberContext, j *Library) android.Path {
|
||||
headerJars := j.HeaderJars()
|
||||
if len(headerJars) != 1 {
|
||||
panic(fmt.Errorf("there must be only one header jar from %q", j.Name()))
|
||||
@@ -98,8 +98,8 @@ var (
|
||||
|
||||
return headerJars[0]
|
||||
},
|
||||
snapshotPathGetter: sdkSnapshotFilePathForJar,
|
||||
onlyCopyJarToSnapshot: copyEverythingToSnapshot,
|
||||
sdkSnapshotFilePathForJar,
|
||||
copyEverythingToSnapshot,
|
||||
}
|
||||
|
||||
// Export implementation classes jar as part of the sdk.
|
||||
@@ -113,12 +113,12 @@ var (
|
||||
|
||||
// Supports adding java implementation libraries to module_exports but not sdk.
|
||||
javaLibsSdkMemberType = &librarySdkMemberType{
|
||||
SdkMemberTypeBase: android.SdkMemberTypeBase{
|
||||
android.SdkMemberTypeBase{
|
||||
PropertyName: "java_libs",
|
||||
},
|
||||
jarToExportGetter: exportImplementationClassesJar,
|
||||
snapshotPathGetter: sdkSnapshotFilePathForJar,
|
||||
onlyCopyJarToSnapshot: copyEverythingToSnapshot,
|
||||
exportImplementationClassesJar,
|
||||
sdkSnapshotFilePathForJar,
|
||||
copyEverythingToSnapshot,
|
||||
}
|
||||
|
||||
snapshotRequiresImplementationJar = func(ctx android.SdkMemberContext) bool {
|
||||
@@ -143,11 +143,11 @@ var (
|
||||
// necessary. The java_boot_libs property to allow those modules to be exported as part of the
|
||||
// sdk/module_exports without exposing any unnecessary information.
|
||||
javaBootLibsSdkMemberType = &librarySdkMemberType{
|
||||
SdkMemberTypeBase: android.SdkMemberTypeBase{
|
||||
android.SdkMemberTypeBase{
|
||||
PropertyName: "java_boot_libs",
|
||||
SupportsSdk: true,
|
||||
},
|
||||
jarToExportGetter: func(ctx android.SdkMemberContext, j *Library) android.Path {
|
||||
func(ctx android.SdkMemberContext, j *Library) android.Path {
|
||||
if snapshotRequiresImplementationJar(ctx) {
|
||||
return exportImplementationClassesJar(ctx, j)
|
||||
}
|
||||
@@ -156,9 +156,9 @@ var (
|
||||
// jar for use by dexpreopting and boot jars package check. They do not need to provide an
|
||||
// actual implementation jar but the java_import will need a file that exists so just copy an
|
||||
// empty file. Any attempt to use that file as a jar will cause a build error.
|
||||
return nil
|
||||
return ctx.SnapshotBuilder().EmptyFile()
|
||||
},
|
||||
snapshotPathGetter: func(ctx android.SdkMemberContext, osPrefix, name string) string {
|
||||
func(ctx android.SdkMemberContext, osPrefix, name string) string {
|
||||
if snapshotRequiresImplementationJar(ctx) {
|
||||
return sdkSnapshotFilePathForJar(ctx, osPrefix, name)
|
||||
}
|
||||
@@ -168,7 +168,7 @@ var (
|
||||
// TODO(b/175714559): Provide a proper error message in Soong not ninja.
|
||||
return filepath.Join(osPrefix, "java_boot_libs", "snapshot", "jars", "are", "invalid", name+jarFileSuffix)
|
||||
},
|
||||
onlyCopyJarToSnapshot: onlyCopyJarToSnapshot,
|
||||
onlyCopyJarToSnapshot,
|
||||
}
|
||||
|
||||
// Supports adding java systemserver libraries to module_exports and sdk.
|
||||
@@ -182,27 +182,27 @@ var (
|
||||
// necessary. The java_systemserver_libs property to allow those modules to be exported as part of
|
||||
// the sdk/module_exports without exposing any unnecessary information.
|
||||
javaSystemserverLibsSdkMemberType = &librarySdkMemberType{
|
||||
SdkMemberTypeBase: android.SdkMemberTypeBase{
|
||||
android.SdkMemberTypeBase{
|
||||
PropertyName: "java_systemserver_libs",
|
||||
SupportsSdk: true,
|
||||
|
||||
// This was only added in Tiramisu.
|
||||
SupportedBuildReleaseSpecification: "Tiramisu+",
|
||||
},
|
||||
jarToExportGetter: func(ctx android.SdkMemberContext, j *Library) android.Path {
|
||||
func(ctx android.SdkMemberContext, j *Library) android.Path {
|
||||
// Java systemserver libs are only provided in the SDK to provide access to their dex
|
||||
// implementation jar for use by dexpreopting. They do not need to provide an actual
|
||||
// implementation jar but the java_import will need a file that exists so just copy an empty
|
||||
// file. Any attempt to use that file as a jar will cause a build error.
|
||||
return nil
|
||||
return ctx.SnapshotBuilder().EmptyFile()
|
||||
},
|
||||
snapshotPathGetter: func(_ android.SdkMemberContext, osPrefix, name string) string {
|
||||
func(_ android.SdkMemberContext, osPrefix, name string) string {
|
||||
// Create a special name for the implementation jar to try and provide some useful information
|
||||
// to a developer that attempts to compile against this.
|
||||
// TODO(b/175714559): Provide a proper error message in Soong not ninja.
|
||||
return filepath.Join(osPrefix, "java_systemserver_libs", "snapshot", "jars", "are", "invalid", name+jarFileSuffix)
|
||||
},
|
||||
onlyCopyJarToSnapshot: onlyCopyJarToSnapshot,
|
||||
onlyCopyJarToSnapshot,
|
||||
}
|
||||
|
||||
// Supports adding java test libraries to module_exports but not sdk.
|
||||
@@ -232,7 +232,7 @@ type JavaInfo struct {
|
||||
ImplementationAndResourcesJars android.Paths
|
||||
|
||||
// ImplementationJars is a list of jars that contain the implementations of classes in the
|
||||
// module.
|
||||
//module.
|
||||
ImplementationJars android.Paths
|
||||
|
||||
// ResourceJars is a list of jars that contain the resources included in the module.
|
||||
@@ -718,8 +718,7 @@ type librarySdkMemberType struct {
|
||||
android.SdkMemberTypeBase
|
||||
|
||||
// Function to retrieve the appropriate output jar (implementation or header) from
|
||||
// the library, if this returns nil then it is assumed that the snapshot must not provide access
|
||||
// to the jar.
|
||||
// the library.
|
||||
jarToExportGetter func(ctx android.SdkMemberContext, j *Library) android.Path
|
||||
|
||||
// Function to compute the snapshot relative path to which the named library's
|
||||
@@ -756,11 +755,7 @@ func (mt *librarySdkMemberType) CreateVariantPropertiesStruct() android.SdkMembe
|
||||
type librarySdkMemberProperties struct {
|
||||
android.SdkMemberPropertiesBase
|
||||
|
||||
JarToExport android.Path `android:"arch_variant"`
|
||||
|
||||
// The path to a script to use when the jar is invalid.
|
||||
InvalidJarScript android.Path
|
||||
|
||||
JarToExport android.Path `android:"arch_variant"`
|
||||
AidlIncludeDirs android.Paths
|
||||
|
||||
// The list of permitted packages that need to be passed to the prebuilts as they are used to
|
||||
@@ -771,15 +766,7 @@ type librarySdkMemberProperties struct {
|
||||
func (p *librarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) {
|
||||
j := variant.(*Library)
|
||||
|
||||
memberType := ctx.MemberType().(*librarySdkMemberType)
|
||||
p.JarToExport = memberType.jarToExportGetter(ctx, j)
|
||||
|
||||
// If no jar was provided for export then disallow access to it completely.
|
||||
if p.JarToExport == nil {
|
||||
// Copy the script to prevent access to the jar into the snapshot.
|
||||
p.InvalidJarScript = android.PathForSource(ctx.SdkModuleContext(),
|
||||
"build/soong/java/invalid_implementation_jar.sh")
|
||||
}
|
||||
p.JarToExport = ctx.MemberType().(*librarySdkMemberType).jarToExportGetter(ctx, j)
|
||||
|
||||
p.AidlIncludeDirs = j.AidlIncludeDirs()
|
||||
|
||||
@@ -802,21 +789,6 @@ func (p *librarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberConte
|
||||
propertySet.AddProperty("jars", []string{snapshotRelativeJavaLibPath})
|
||||
}
|
||||
|
||||
if scriptSrc := p.InvalidJarScript; scriptSrc != nil {
|
||||
// Copy the script to prevent access to the jar into the snapshot.
|
||||
scriptDest := filepath.Join("scripts", scriptSrc.Base())
|
||||
builder.CopyToSnapshot(scriptSrc, scriptDest)
|
||||
|
||||
// Generate a genrule module that will invoke the script passing in the module name.
|
||||
genrule := builder.AddInternalModule(p, "genrule", "error")
|
||||
genRuleName := genrule.Name()
|
||||
genrule.AddProperty("out", []string{"this-file-will-never-be-created.jar"})
|
||||
genrule.AddProperty("tool_files", []string{scriptDest})
|
||||
genrule.AddProperty("cmd", fmt.Sprintf("$(location %s) %s", scriptDest, p.Name()))
|
||||
|
||||
propertySet.AddPropertyWithTag("jars", []string{":" + genRuleName}, builder.SdkMemberReferencePropertyTag(true))
|
||||
}
|
||||
|
||||
if len(p.PermittedPackages) > 0 {
|
||||
propertySet.AddProperty("permitted_packages", p.PermittedPackages)
|
||||
}
|
||||
@@ -1678,7 +1650,7 @@ func (j *Import) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
}
|
||||
|
||||
func (j *Import) commonBuildActions(ctx android.ModuleContext) {
|
||||
// TODO(b/231322772) these should come from Bazel once available
|
||||
//TODO(b/231322772) these should come from Bazel once available
|
||||
j.sdkVersion = j.SdkVersion(ctx)
|
||||
j.minSdkVersion = j.MinSdkVersion(ctx)
|
||||
|
||||
@@ -2281,7 +2253,7 @@ func (m *Library) convertJavaResourcesAttributes(ctx android.TopDownMutatorConte
|
||||
resources.Append(android.BazelLabelForModuleSrc(ctx, m.properties.Java_resources))
|
||||
}
|
||||
|
||||
// TODO(b/179889880) handle case where glob includes files outside package
|
||||
//TODO(b/179889880) handle case where glob includes files outside package
|
||||
resDeps := ResourceDirsToFiles(
|
||||
ctx,
|
||||
m.properties.Java_resource_dirs,
|
||||
@@ -2429,7 +2401,7 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext)
|
||||
}
|
||||
|
||||
epEnabled := m.properties.Errorprone.Enabled
|
||||
// TODO(b/227504307) add configuration that depends on RUN_ERROR_PRONE environment variable
|
||||
//TODO(b/227504307) add configuration that depends on RUN_ERROR_PRONE environment variable
|
||||
if Bool(epEnabled) {
|
||||
javacopts = append(javacopts, m.properties.Errorprone.Javacflags...)
|
||||
}
|
||||
@@ -2665,7 +2637,7 @@ func (i *Import) ProcessBazelQueryResponse(ctx android.ModuleContext) {
|
||||
HeaderJars: android.PathsIfNonNil(i.combinedClasspathFile),
|
||||
ImplementationAndResourcesJars: android.PathsIfNonNil(i.combinedClasspathFile),
|
||||
ImplementationJars: android.PathsIfNonNil(i.combinedClasspathFile),
|
||||
// TODO(b/240308299) include AIDL information from Bazel
|
||||
//TODO(b/240308299) include AIDL information from Bazel
|
||||
})
|
||||
|
||||
i.maybeInstall(ctx, jarName, outputFile)
|
||||
|
Reference in New Issue
Block a user