Loading java/java.go +21 −2 Original line number Diff line number Diff line Loading @@ -315,7 +315,7 @@ type sdkDep struct { func sdkStringToNumber(ctx android.BaseContext, v string) int { switch v { case "", "current", "system_current", "test_current": case "", "current", "system_current", "test_current", "core_current": return android.FutureApiLevel default: if i, err := strconv.Atoi(android.GetNumericSdkVersion(v)); err != nil { Loading Loading @@ -361,8 +361,15 @@ func decodeSdkDep(ctx android.BaseContext, v string) sdkDep { } toFile := func(v string) sdkDep { isCore := strings.HasPrefix(v, "core_") if isCore { v = strings.TrimPrefix(v, "core_") } dir := filepath.Join("prebuilts/sdk", v) jar := filepath.Join(dir, "android.jar") if isCore { jar = filepath.Join(dir, "core.jar") } aidl := filepath.Join(dir, "framework.aidl") jarPath := android.ExistentPathForSource(ctx, "sdkdir", jar) aidlPath := android.ExistentPathForSource(ctx, "sdkdir", aidl) Loading Loading @@ -557,6 +564,15 @@ func checkProducesJars(ctx android.ModuleContext, dep android.SourceFileProducer } } func checkLinkType(ctx android.ModuleContext, from *Module, to *Library, tag dependencyTag) { if strings.HasPrefix(String(from.deviceProperties.Sdk_version), "core_") { if !strings.HasPrefix(String(to.deviceProperties.Sdk_version), "core_") { ctx.ModuleErrorf("depends on other library %q using non-core Java APIs", ctx.OtherModuleName(to)) } } } func (j *Module) collectDeps(ctx android.ModuleContext) deps { var deps deps Loading @@ -573,6 +589,9 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps { otherName := ctx.OtherModuleName(module) tag := ctx.OtherModuleDependencyTag(module) if to, ok := module.(*Library); ok { checkLinkType(ctx, j, to, tag.(dependencyTag)) } switch dep := module.(type) { case Dependency: switch tag { Loading Loading @@ -989,7 +1008,7 @@ func (j *Module) instrument(ctx android.ModuleContext, flags javaBuilderFlags, // modules targeting an unreleased SDK (meaning it does not yet have a number) it returns "10000". func (j *Module) minSdkVersionNumber(ctx android.ModuleContext) string { switch String(j.deviceProperties.Sdk_version) { case "", "current", "test_current", "system_current": case "", "current", "test_current", "system_current", "core_current": return strconv.Itoa(ctx.Config().DefaultAppTargetSdkInt()) default: return android.GetNumericSdkVersion(String(j.deviceProperties.Sdk_version)) Loading java/java_test.go +9 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ func testContext(config android.Config, bp string, "prebuilts/sdk/14/framework.aidl": nil, "prebuilts/sdk/current/android.jar": nil, "prebuilts/sdk/current/framework.aidl": nil, "prebuilts/sdk/current/core.jar": nil, "prebuilts/sdk/system_current/android.jar": nil, "prebuilts/sdk/system_current/framework.aidl": nil, "prebuilts/sdk/system_14/android.jar": nil, Loading Loading @@ -360,6 +361,14 @@ var classpathTestcases = []struct { system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath classpath: []string{"prebuilts/sdk/test_current/android.jar"}, }, { name: "core_current", properties: `sdk_version: "core_current",`, bootclasspath: []string{`""`}, system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath classpath: []string{"prebuilts/sdk/current/core.jar"}, }, { name: "nostdlib", Loading Loading
java/java.go +21 −2 Original line number Diff line number Diff line Loading @@ -315,7 +315,7 @@ type sdkDep struct { func sdkStringToNumber(ctx android.BaseContext, v string) int { switch v { case "", "current", "system_current", "test_current": case "", "current", "system_current", "test_current", "core_current": return android.FutureApiLevel default: if i, err := strconv.Atoi(android.GetNumericSdkVersion(v)); err != nil { Loading Loading @@ -361,8 +361,15 @@ func decodeSdkDep(ctx android.BaseContext, v string) sdkDep { } toFile := func(v string) sdkDep { isCore := strings.HasPrefix(v, "core_") if isCore { v = strings.TrimPrefix(v, "core_") } dir := filepath.Join("prebuilts/sdk", v) jar := filepath.Join(dir, "android.jar") if isCore { jar = filepath.Join(dir, "core.jar") } aidl := filepath.Join(dir, "framework.aidl") jarPath := android.ExistentPathForSource(ctx, "sdkdir", jar) aidlPath := android.ExistentPathForSource(ctx, "sdkdir", aidl) Loading Loading @@ -557,6 +564,15 @@ func checkProducesJars(ctx android.ModuleContext, dep android.SourceFileProducer } } func checkLinkType(ctx android.ModuleContext, from *Module, to *Library, tag dependencyTag) { if strings.HasPrefix(String(from.deviceProperties.Sdk_version), "core_") { if !strings.HasPrefix(String(to.deviceProperties.Sdk_version), "core_") { ctx.ModuleErrorf("depends on other library %q using non-core Java APIs", ctx.OtherModuleName(to)) } } } func (j *Module) collectDeps(ctx android.ModuleContext) deps { var deps deps Loading @@ -573,6 +589,9 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps { otherName := ctx.OtherModuleName(module) tag := ctx.OtherModuleDependencyTag(module) if to, ok := module.(*Library); ok { checkLinkType(ctx, j, to, tag.(dependencyTag)) } switch dep := module.(type) { case Dependency: switch tag { Loading Loading @@ -989,7 +1008,7 @@ func (j *Module) instrument(ctx android.ModuleContext, flags javaBuilderFlags, // modules targeting an unreleased SDK (meaning it does not yet have a number) it returns "10000". func (j *Module) minSdkVersionNumber(ctx android.ModuleContext) string { switch String(j.deviceProperties.Sdk_version) { case "", "current", "test_current", "system_current": case "", "current", "test_current", "system_current", "core_current": return strconv.Itoa(ctx.Config().DefaultAppTargetSdkInt()) default: return android.GetNumericSdkVersion(String(j.deviceProperties.Sdk_version)) Loading
java/java_test.go +9 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ func testContext(config android.Config, bp string, "prebuilts/sdk/14/framework.aidl": nil, "prebuilts/sdk/current/android.jar": nil, "prebuilts/sdk/current/framework.aidl": nil, "prebuilts/sdk/current/core.jar": nil, "prebuilts/sdk/system_current/android.jar": nil, "prebuilts/sdk/system_current/framework.aidl": nil, "prebuilts/sdk/system_14/android.jar": nil, Loading Loading @@ -360,6 +361,14 @@ var classpathTestcases = []struct { system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath classpath: []string{"prebuilts/sdk/test_current/android.jar"}, }, { name: "core_current", properties: `sdk_version: "core_current",`, bootclasspath: []string{`""`}, system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath classpath: []string{"prebuilts/sdk/current/core.jar"}, }, { name: "nostdlib", Loading