Merge "Treat core_platform as stable unless module uses legacy"

This commit is contained in:
Nicolas Geoffray
2021-03-15 08:42:43 +00:00
committed by Gerrit Code Review
3 changed files with 21 additions and 5 deletions

View File

@@ -2049,7 +2049,7 @@ func TestJavaStableSdkVersion(t *testing.T) {
java_library { java_library {
name: "myjar", name: "myjar",
srcs: ["foo/bar/MyClass.java"], srcs: ["foo/bar/MyClass.java"],
sdk_version: "core_platform", sdk_version: "test_current",
apex_available: ["myapex"], apex_available: ["myapex"],
} }
`, `,
@@ -2096,13 +2096,16 @@ func TestJavaStableSdkVersion(t *testing.T) {
java_library { java_library {
name: "myjar", name: "myjar",
srcs: ["foo/bar/MyClass.java"], srcs: ["foo/bar/MyClass.java"],
sdk_version: "core_platform", sdk_version: "test_current",
apex_available: ["myapex"], apex_available: ["myapex"],
} }
`, `,
}, },
{ {
name: "Updatable apex with non-stable transitive dep", name: "Updatable apex with non-stable transitive dep",
// This is not actually detecting that the transitive dependency is unstable, rather it is
// detecting that the transitive dependency is building against a wider API surface than the
// module that depends on it is using.
expectedError: "compiles against Android API, but dependency \"transitive-jar\" is compiling against private API.", expectedError: "compiles against Android API, but dependency \"transitive-jar\" is compiling against private API.",
bp: ` bp: `
apex { apex {

View File

@@ -122,7 +122,16 @@ func (j *Module) CheckStableSdkVersion() error {
if sdkVersion.stable() { if sdkVersion.stable() {
return nil return nil
} }
return fmt.Errorf("non stable SDK %v", sdkVersion) if sdkVersion.kind == sdkCorePlatform {
if useLegacyCorePlatformApiByName(j.BaseModuleName()) {
return fmt.Errorf("non stable SDK %v - uses legacy core platform", sdkVersion)
} else {
// Treat stable core platform as stable.
return nil
}
} else {
return fmt.Errorf("non stable SDK %v", sdkVersion)
}
} }
func (j *Module) checkSdkVersions(ctx android.ModuleContext) { func (j *Module) checkSdkVersions(ctx android.ModuleContext) {

View File

@@ -160,7 +160,11 @@ func init() {
} }
func useLegacyCorePlatformApi(ctx android.EarlyModuleContext) bool { func useLegacyCorePlatformApi(ctx android.EarlyModuleContext) bool {
_, found := legacyCorePlatformApiLookup[ctx.ModuleName()] return useLegacyCorePlatformApiByName(ctx.ModuleName())
}
func useLegacyCorePlatformApiByName(name string) bool {
_, found := legacyCorePlatformApiLookup[name]
return found return found
} }