Write module dexpreopt.config for Make.
This is needed for Java libraries that are <uses-library> dependencies of Java libraries and apps defined as Make modules. Each dexpreopted module in Make generates a dexpreopt.config file, which incorporates information from its dependencies' dexpreopt.config files. For dependencies that are Make modules their dexpreopt.config files are generated by Make, and for Soong modules they are generated by Soong. Since Soong doesn't know which libraries are used by Make, it generates build rules for a superset of the necessary libraries. Bug: 132357300 Test: lunch aosp_cf_x86_phone-userdebug && m Change-Id: I325b1037658736ee3c02450b08c00eca1a175962
This commit is contained in:
@@ -534,3 +534,26 @@ func fromJsonClassLoaderContextRec(ctx android.PathContext, jClcs map[string]*js
|
||||
}
|
||||
return clcs
|
||||
}
|
||||
|
||||
// Convert Soong CLC map to JSON representation for Make.
|
||||
func toJsonClassLoaderContext(clcMap ClassLoaderContextMap) jsonClassLoaderContextMap {
|
||||
jClcMap := make(jsonClassLoaderContextMap)
|
||||
for sdkVer, clcs := range clcMap {
|
||||
sdkVerStr := fmt.Sprintf("%d", sdkVer)
|
||||
jClcMap[sdkVerStr] = toJsonClassLoaderContextRec(clcs)
|
||||
}
|
||||
return jClcMap
|
||||
}
|
||||
|
||||
// Recursive helper for toJsonClassLoaderContext.
|
||||
func toJsonClassLoaderContextRec(clcs []*ClassLoaderContext) map[string]*jsonClassLoaderContext {
|
||||
jClcs := make(map[string]*jsonClassLoaderContext, len(clcs))
|
||||
for _, clc := range clcs {
|
||||
jClcs[clc.Name] = &jsonClassLoaderContext{
|
||||
Host: clc.Host.String(),
|
||||
Device: clc.Device,
|
||||
Subcontexts: toJsonClassLoaderContextRec(clc.Subcontexts),
|
||||
}
|
||||
}
|
||||
return jClcs
|
||||
}
|
||||
|
Reference in New Issue
Block a user