diff options
Diffstat (limited to 'java/sdk.go')
| -rw-r--r-- | java/sdk.go | 54 |
1 files changed, 5 insertions, 49 deletions
diff --git a/java/sdk.go b/java/sdk.go index 7c702c405..81be991e6 100644 --- a/java/sdk.go +++ b/java/sdk.go @@ -17,8 +17,6 @@ package java import ( "fmt" "path/filepath" - "sort" - "strconv" "android/soong/android" "android/soong/java/config" @@ -27,12 +25,10 @@ import ( ) func init() { - android.RegisterPreSingletonType("sdk_versions", sdkPreSingletonFactory) android.RegisterParallelSingletonType("sdk", sdkSingletonFactory) android.RegisterMakeVarsProvider(pctx, sdkMakeVars) } -var sdkVersionsKey = android.NewOnceKey("sdkVersionsKey") var sdkFrameworkAidlPathKey = android.NewOnceKey("sdkFrameworkAidlPathKey") var nonUpdatableFrameworkAidlPathKey = android.NewOnceKey("nonUpdatableFrameworkAidlPathKey") var apiFingerprintPathKey = android.NewOnceKey("apiFingerprintPathKey") @@ -51,9 +47,7 @@ func defaultJavaLanguageVersion(ctx android.EarlyModuleContext, s android.SdkSpe if err != nil { ctx.PropertyErrorf("sdk_version", "%s", err) } - if sdk.FinalOrFutureInt() <= 23 { - return JAVA_VERSION_7 - } else if sdk.FinalOrFutureInt() <= 29 { + if sdk.FinalOrFutureInt() <= 29 { return JAVA_VERSION_8 } else if sdk.FinalOrFutureInt() <= 31 { return JAVA_VERSION_9 @@ -76,7 +70,8 @@ func systemModuleKind(sdkKind android.SdkKind, apiLevel android.ApiLevel) androi // Core is by definition what is included in the system module for the public API so should // just use its system modules. systemModuleKind = android.SdkPublic - } else if systemModuleKind == android.SdkSystem || systemModuleKind == android.SdkTest { + } else if systemModuleKind == android.SdkSystem || systemModuleKind == android.SdkTest || + systemModuleKind == android.SdkTestFrameworksCore { // The core system and test APIs are currently the same as the public API so they should use // its system modules. systemModuleKind = android.SdkPublic @@ -192,7 +187,7 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext android.SdkContext) bootclasspath: corePlatformBootclasspathLibraries(ctx), noFrameworksLibs: true, } - case android.SdkPublic, android.SdkSystem, android.SdkTest: + case android.SdkPublic, android.SdkSystem, android.SdkTest, android.SdkTestFrameworksCore: return toModule(sdkVersion.Kind.DefaultJavaLibraryName(), sdkFrameworkAidlPath(ctx)) case android.SdkCore: return sdkDep{ @@ -212,44 +207,6 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext android.SdkContext) } } -func sdkPreSingletonFactory() android.Singleton { - return sdkPreSingleton{} -} - -type sdkPreSingleton struct{} - -func (sdkPreSingleton) GenerateBuildActions(ctx android.SingletonContext) { - sdkJars, err := ctx.GlobWithDeps("prebuilts/sdk/*/public/android.jar", nil) - if err != nil { - ctx.Errorf("failed to glob prebuilts/sdk/*/public/android.jar: %s", err.Error()) - } - - var sdkVersions []int - for _, sdkJar := range sdkJars { - dir := filepath.Base(filepath.Dir(filepath.Dir(sdkJar))) - v, err := strconv.Atoi(dir) - if scerr, ok := err.(*strconv.NumError); ok && scerr.Err == strconv.ErrSyntax { - continue - } else if err != nil { - ctx.Errorf("invalid sdk jar %q, %s, %v", sdkJar, err.Error()) - } - sdkVersions = append(sdkVersions, v) - } - - sort.Ints(sdkVersions) - - ctx.Config().Once(sdkVersionsKey, func() interface{} { return sdkVersions }) -} - -func LatestSdkVersionInt(ctx android.EarlyModuleContext) int { - sdkVersions := ctx.Config().Get(sdkVersionsKey).([]int) - latestSdkVersion := 0 - if len(sdkVersions) > 0 { - latestSdkVersion = sdkVersions[len(sdkVersions)-1] - } - return latestSdkVersion -} - func sdkSingletonFactory() android.Singleton { return sdkSingleton{} } @@ -303,8 +260,7 @@ func createFrameworkAidl(stubsModules []string, path android.WritablePath, ctx a ctx.VisitAllModules(func(module android.Module) { // Collect dex jar paths for the modules listed above. - if ctx.ModuleHasProvider(module, JavaInfoProvider) { - j := ctx.ModuleProvider(module, JavaInfoProvider).(JavaInfo) + if j, ok := android.SingletonModuleProvider(ctx, module, JavaInfoProvider); ok { name := ctx.ModuleName(module) if i := android.IndexList(name, stubsModules); i != -1 { stubsJars[i] = j.HeaderJars |