Create full API surface java_library in combined_apis
This change renames the full api surface stub jar generating java_library modules by adding ".from-source" suffix and creating the modules in combined_apis. Either the ".from-source" module or the ".from-text" module is added as static libs based on the build config. Bug: 284150060 Bug: 284995489 Bug: 285410821 Test: m && m --build-from-text-stub and verify no ninja path between android_stubs_current and android_stubs_current.from-source Change-Id: I1419af0cd0ca2199e82e3337717b6391a51267c4
This commit is contained in:
@@ -341,7 +341,7 @@ java_defaults {
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "android_stubs_current",
|
||||
name: "android_stubs_current.from-source",
|
||||
static_libs: [
|
||||
"all-modules-public-stubs",
|
||||
"android-non-updatable.stubs",
|
||||
@@ -351,7 +351,7 @@ java_library {
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "android_system_stubs_current",
|
||||
name: "android_system_stubs_current.from-source",
|
||||
static_libs: [
|
||||
"all-modules-system-stubs",
|
||||
"android-non-updatable.stubs.system",
|
||||
@@ -375,7 +375,7 @@ java_library {
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "android_test_stubs_current",
|
||||
name: "android_test_stubs_current.from-source",
|
||||
static_libs: [
|
||||
// Updatable modules do not have test APIs, but we want to include their SystemApis, like we
|
||||
// include the SystemApi of framework-non-updatable-sources.
|
||||
@@ -395,7 +395,7 @@ java_library {
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "android_module_lib_stubs_current",
|
||||
name: "android_module_lib_stubs_current.from-source",
|
||||
defaults: [
|
||||
"android.jar_defaults",
|
||||
"android_stubs_dists_default",
|
||||
@@ -411,7 +411,7 @@ java_library {
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "android_system_server_stubs_current",
|
||||
name: "android_system_server_stubs_current.from-source",
|
||||
defaults: [
|
||||
"android.jar_defaults",
|
||||
"android_stubs_dists_default",
|
||||
@@ -419,7 +419,7 @@ java_library {
|
||||
srcs: [":services-non-updatable-stubs"],
|
||||
installable: false,
|
||||
static_libs: [
|
||||
"android_module_lib_stubs_current",
|
||||
"android_module_lib_stubs_current.from-source",
|
||||
],
|
||||
dist: {
|
||||
dir: "apistubs/android/system-server",
|
||||
|
||||
27
api/api.go
27
api/api.go
@@ -96,6 +96,7 @@ type libraryProps struct {
|
||||
Sdk_version *string
|
||||
Static_libs []string
|
||||
Visibility []string
|
||||
Defaults []string
|
||||
}
|
||||
|
||||
type fgProps struct {
|
||||
@@ -362,6 +363,30 @@ func createApiContributionDefaults(ctx android.LoadHookContext, modules []string
|
||||
}
|
||||
}
|
||||
|
||||
func createFullApiLibraries(ctx android.LoadHookContext) {
|
||||
javaLibraryNames := []string{
|
||||
"android_stubs_current",
|
||||
"android_system_stubs_current",
|
||||
"android_test_stubs_current",
|
||||
"android_module_lib_stubs_current",
|
||||
"android_system_server_stubs_current",
|
||||
}
|
||||
|
||||
for _, libraryName := range javaLibraryNames {
|
||||
props := libraryProps{}
|
||||
props.Name = proptools.StringPtr(libraryName)
|
||||
staticLib := libraryName + ".from-source"
|
||||
if ctx.Config().BuildFromTextStub() {
|
||||
staticLib = libraryName + ".from-text"
|
||||
}
|
||||
props.Static_libs = []string{staticLib}
|
||||
props.Defaults = []string{"android.jar_defaults"}
|
||||
props.Visibility = []string{"//visibility:public"}
|
||||
|
||||
ctx.CreateModule(java.LibraryFactory, &props)
|
||||
}
|
||||
}
|
||||
|
||||
func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) {
|
||||
bootclasspath := a.properties.Bootclasspath
|
||||
system_server_classpath := a.properties.System_server_classpath
|
||||
@@ -382,6 +407,8 @@ func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) {
|
||||
createPublicStubsSourceFilegroup(ctx, bootclasspath)
|
||||
|
||||
createApiContributionDefaults(ctx, bootclasspath)
|
||||
|
||||
createFullApiLibraries(ctx)
|
||||
}
|
||||
|
||||
func combinedApisModuleFactory() android.Module {
|
||||
|
||||
@@ -19,6 +19,7 @@ import (
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/bp2build"
|
||||
"android/soong/java"
|
||||
)
|
||||
|
||||
func runCombinedApisTestCaseWithRegistrationCtxFunc(t *testing.T, tc bp2build.Bp2buildTestCase, registrationCtxFunc func(ctx android.RegistrationContext)) {
|
||||
@@ -30,7 +31,9 @@ func runCombinedApisTestCaseWithRegistrationCtxFunc(t *testing.T, tc bp2build.Bp
|
||||
|
||||
func runCombinedApisTestCase(t *testing.T, tc bp2build.Bp2buildTestCase) {
|
||||
t.Helper()
|
||||
runCombinedApisTestCaseWithRegistrationCtxFunc(t, tc, func(ctx android.RegistrationContext) {})
|
||||
runCombinedApisTestCaseWithRegistrationCtxFunc(t, tc, func(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("java_defaults", java.DefaultsFactory)
|
||||
})
|
||||
}
|
||||
|
||||
func TestCombinedApisGeneral(t *testing.T) {
|
||||
@@ -42,6 +45,13 @@ func TestCombinedApisGeneral(t *testing.T) {
|
||||
system_server_classpath: ["ssc"],
|
||||
}
|
||||
`,
|
||||
Filesystem: map[string]string{
|
||||
"a/Android.bp": `
|
||||
java_defaults {
|
||||
name: "android.jar_defaults",
|
||||
}
|
||||
`,
|
||||
},
|
||||
ExpectedBazelTargets: []string{
|
||||
bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-current.txt", bp2build.AttrNameToString{
|
||||
"scope": `"public"`,
|
||||
|
||||
Reference in New Issue
Block a user