Support prebuilt module types

Now BUILD_PREBUILT should be converted into corresponding types
like cc_prebuilt_library_shared/cc_prebuilt_library_static ...
So change to check LOCAL_MODULE_CLASS in Android.mk to determine
module types, and eliminate class property from Android.bp which
will cause a build break.

Change-Id: If865cc865f360eac7cc77f060df5a310bada6900
Test: out/soong/host/linux-x86/bin/androidmk prebuilts/misc/common/ddmlib/Android.mk
This commit is contained in:
Po Hu
2017-03-28 12:54:50 +08:00
parent c31994825a
commit a2226b960a

View File

@@ -29,6 +29,7 @@ var rewriteProperties = map[string](func(variableAssignmentContext) error){
"LOCAL_C_INCLUDES": localIncludeDirs,
"LOCAL_EXPORT_C_INCLUDE_DIRS": exportIncludeDirs,
"LOCAL_LDFLAGS": ldflags,
"LOCAL_MODULE_CLASS": prebuiltClass,
"LOCAL_MODULE_STEM": stem,
"LOCAL_MODULE_HOST_OS": hostOs,
"LOCAL_SRC_FILES": srcFiles,
@@ -40,7 +41,9 @@ var rewriteProperties = map[string](func(variableAssignmentContext) error){
// skip functions
"LOCAL_ADDITIONAL_DEPENDENCIES": skip, // TODO: check for only .mk files?
"LOCAL_CPP_EXTENSION": skip,
"LOCAL_MODULE_SUFFIX": skip, // TODO
"LOCAL_PATH": skip, // Nothing to do, except maybe avoid the "./" in paths?
"LOCAL_PRELINK_MODULE": skip, // Already phased out
}
// adds a group of properties all having the same type
@@ -54,7 +57,6 @@ func init() {
addStandardProperties(bpparser.StringType,
map[string]string{
"LOCAL_MODULE": "name",
"LOCAL_MODULE_CLASS": "class",
"LOCAL_CXX_STL": "stl",
"LOCAL_STRIP_MODULE": "strip",
"LOCAL_MULTILIB": "compile_multilib",
@@ -462,6 +464,17 @@ func sanitize(ctx variableAssignmentContext) error {
return err
}
func prebuiltClass(ctx variableAssignmentContext) error {
class := ctx.mkvalue.Value(nil)
if v, ok := prebuiltTypes[class]; ok {
ctx.file.scope.Set("BUILD_PREBUILT", v)
} else {
// reset to default
ctx.file.scope.Set("BUILD_PREBUILT", "prebuilt")
}
return nil
}
func ldflags(ctx variableAssignmentContext) error {
val, err := makeVariableToBlueprint(ctx.file, ctx.mkvalue, bpparser.ListType)
if err != nil {
@@ -658,8 +671,13 @@ var moduleTypes = map[string]string{
"BUILD_HOST_JAVA_LIBRARY": "java_library_host",
"BUILD_HOST_DALVIK_JAVA_LIBRARY": "java_library_host_dalvik",
"BUILD_PACKAGE": "android_app",
}
"BUILD_PREBUILT": "prebuilt",
var prebuiltTypes = map[string]string{
"SHARED_LIBRARIES": "cc_prebuilt_library_shared",
"STATIC_LIBRARIES": "cc_prebuilt_library_static",
"EXECUTABLES": "cc_prebuilt_binary",
"JAVA_LIBRARIES": "prebuilt_java_library",
}
var soongModuleTypes = map[string]bool{}
@@ -675,6 +693,9 @@ func androidScope() mkparser.Scope {
globalScope.Set(k, v)
soongModuleTypes[v] = true
}
for _, v := range prebuiltTypes {
soongModuleTypes[v] = true
}
return globalScope
}