Extract java SdkMemberType instances as vars
This will allow them to be used from elsewhere in a follow up change. Bug: 177892522 Test: m nothing Change-Id: I60e94e148af5b1810aea7f724cba090b49ae758e
This commit is contained in:
63
java/java.go
63
java/java.go
@@ -68,9 +68,32 @@ func registerJavaBuildComponents(ctx android.RegistrationContext) {
|
||||
func RegisterJavaSdkMemberTypes() {
|
||||
// Register sdk member types.
|
||||
android.RegisterSdkMemberType(javaHeaderLibsSdkMemberType)
|
||||
android.RegisterSdkMemberType(javaLibsSdkMemberType)
|
||||
android.RegisterSdkMemberType(javaBootLibsSdkMemberType)
|
||||
android.RegisterSdkMemberType(javaTestSdkMemberType)
|
||||
}
|
||||
|
||||
var (
|
||||
// Supports adding java header libraries to module_exports and sdk.
|
||||
javaHeaderLibsSdkMemberType = &librarySdkMemberType{
|
||||
android.SdkMemberTypeBase{
|
||||
PropertyName: "java_header_libs",
|
||||
SupportsSdk: true,
|
||||
},
|
||||
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()))
|
||||
}
|
||||
|
||||
return headerJars[0]
|
||||
},
|
||||
sdkSnapshotFilePathForJar,
|
||||
copyEverythingToSnapshot,
|
||||
}
|
||||
|
||||
// Export implementation classes jar as part of the sdk.
|
||||
exportImplementationClassesJar := func(_ android.SdkMemberContext, j *Library) android.Path {
|
||||
exportImplementationClassesJar = func(_ android.SdkMemberContext, j *Library) android.Path {
|
||||
implementationJars := j.ImplementationAndResourcesJars()
|
||||
if len(implementationJars) != 1 {
|
||||
panic(fmt.Errorf("there must be only one implementation jar from %q", j.Name()))
|
||||
@@ -78,17 +101,17 @@ func RegisterJavaSdkMemberTypes() {
|
||||
return implementationJars[0]
|
||||
}
|
||||
|
||||
// Register java implementation libraries for use only in module_exports (not sdk).
|
||||
android.RegisterSdkMemberType(&librarySdkMemberType{
|
||||
// Supports adding java implementation libraries to module_exports but not sdk.
|
||||
javaLibsSdkMemberType = &librarySdkMemberType{
|
||||
android.SdkMemberTypeBase{
|
||||
PropertyName: "java_libs",
|
||||
},
|
||||
exportImplementationClassesJar,
|
||||
sdkSnapshotFilePathForJar,
|
||||
copyEverythingToSnapshot,
|
||||
})
|
||||
}
|
||||
|
||||
// Register java boot libraries for use in sdk.
|
||||
// Supports adding java boot libraries to module_exports and sdk.
|
||||
//
|
||||
// The build has some implicit dependencies (via the boot jars configuration) on a number of
|
||||
// modules, e.g. core-oj, apache-xml, that are part of the java boot class path and which are
|
||||
@@ -99,7 +122,7 @@ func RegisterJavaSdkMemberTypes() {
|
||||
// either java_libs, or java_header_libs would end up exporting more information than was strictly
|
||||
// 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.
|
||||
android.RegisterSdkMemberType(&librarySdkMemberType{
|
||||
javaBootLibsSdkMemberType = &librarySdkMemberType{
|
||||
android.SdkMemberTypeBase{
|
||||
PropertyName: "java_boot_libs",
|
||||
SupportsSdk: true,
|
||||
@@ -110,16 +133,15 @@ func RegisterJavaSdkMemberTypes() {
|
||||
exportImplementationClassesJar,
|
||||
sdkSnapshotFilePathForJar,
|
||||
onlyCopyJarToSnapshot,
|
||||
})
|
||||
}
|
||||
|
||||
// Register java test libraries for use only in module_exports (not sdk).
|
||||
android.RegisterSdkMemberType(&testSdkMemberType{
|
||||
// Supports adding java test libraries to module_exports but not sdk.
|
||||
javaTestSdkMemberType = &testSdkMemberType{
|
||||
SdkMemberTypeBase: android.SdkMemberTypeBase{
|
||||
PropertyName: "java_tests",
|
||||
},
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// JavaInfo contains information about a java module for use by modules that depend on it.
|
||||
type JavaInfo struct {
|
||||
@@ -606,23 +628,6 @@ func (p *librarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberConte
|
||||
}
|
||||
}
|
||||
|
||||
var javaHeaderLibsSdkMemberType android.SdkMemberType = &librarySdkMemberType{
|
||||
android.SdkMemberTypeBase{
|
||||
PropertyName: "java_header_libs",
|
||||
SupportsSdk: true,
|
||||
},
|
||||
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()))
|
||||
}
|
||||
|
||||
return headerJars[0]
|
||||
},
|
||||
sdkSnapshotFilePathForJar,
|
||||
copyEverythingToSnapshot,
|
||||
}
|
||||
|
||||
// java_library builds and links sources into a `.jar` file for the device, and possibly for the host as well.
|
||||
//
|
||||
// By default, a java_library has a single variant that produces a `.jar` file containing `.class` files that were
|
||||
|
Reference in New Issue
Block a user