blob: 6cb549eaf10d88e181960640720eb21c23020c5e [file] [log] [blame]
// Copyright 2020 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package java
import (
"android/soong/android"
"android/soong/java/config"
)
var legacyCorePlatformApiModules = []string{
"ArcSettings",
"BTTestApp",
"CapCtrlInterface",
"com.qti.location.sdk",
"face-V1-0-javalib",
"FloralClocks",
"framework-jobscheduler",
"framework-minus-apex",
"framework-minus-apex-intdefs",
"FrameworksCoreTests",
"HelloOslo",
"izat.lib.glue",
"mediatek-ims-base",
"ModemTestMode",
"MtkCapCtrl",
"my.tests.snapdragonsdktest",
"NetworkSetting",
"PerformanceMode",
"pxp-monitor",
"QColor",
"qcom.fmradio",
"Qmmi",
"QPerformance",
"sam",
"saminterfacelibrary",
"sammanagerlibrary",
"services",
"services.core.unboosted",
"Settings-core",
"SettingsGoogle",
"SettingsGoogleOverlayCoral",
"SettingsGoogleOverlayFlame",
"SettingsLib",
"SettingsRoboTests",
"SimContact",
"SimContacts",
"SimSettings",
"tcmiface",
"telephony-common",
"TeleService",
"UxPerformance",
"WfdCommon",
}
var legacyCorePlatformApiLookup = make(map[string]struct{})
func init() {
for _, module := range legacyCorePlatformApiModules {
legacyCorePlatformApiLookup[module] = struct{}{}
}
}
var legacyCorePlatformApiLookupKey = android.NewOnceKey("legacyCorePlatformApiLookup")
func getLegacyCorePlatformApiLookup(config android.Config) map[string]struct{} {
return config.Once(legacyCorePlatformApiLookupKey, func() interface{} {
return legacyCorePlatformApiLookup
}).(map[string]struct{})
}
// useLegacyCorePlatformApi checks to see whether the supplied module name is in the list of modules
// that are able to use the legacy core platform API and returns true if it does, false otherwise.
//
// This method takes the module name separately from the context as this may be being called for a
// module that is not the target of the supplied context.
func useLegacyCorePlatformApi(ctx android.EarlyModuleContext, moduleName string) bool {
lookup := getLegacyCorePlatformApiLookup(ctx.Config())
_, found := lookup[moduleName]
return found
}
func corePlatformSystemModules(ctx android.EarlyModuleContext) string {
if useLegacyCorePlatformApi(ctx, ctx.ModuleName()) {
return config.LegacyCorePlatformSystemModules
} else {
return config.StableCorePlatformSystemModules
}
}
func corePlatformBootclasspathLibraries(ctx android.EarlyModuleContext) []string {
if useLegacyCorePlatformApi(ctx, ctx.ModuleName()) {
return config.LegacyCorePlatformBootclasspathLibraries
} else {
return config.StableCorePlatformBootclasspathLibraries
}
}