Merge "Use textproto format for classpaths.proto generation." am: ee594919ea
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1907854 Change-Id: Ifc20dddb8fa9380423e70be160a81d0b0f545167
This commit is contained in:
@@ -158,15 +158,15 @@ func (c *ClasspathFragmentBase) generateClasspathProtoBuildActions(ctx android.M
|
|||||||
c.outputFilepath = android.PathForModuleOut(ctx, outputFilename).OutputPath
|
c.outputFilepath = android.PathForModuleOut(ctx, outputFilename).OutputPath
|
||||||
c.installDirPath = android.PathForModuleInstall(ctx, "etc", "classpaths")
|
c.installDirPath = android.PathForModuleInstall(ctx, "etc", "classpaths")
|
||||||
|
|
||||||
generatedJson := android.PathForModuleOut(ctx, outputFilename+".json")
|
generatedTextproto := android.PathForModuleOut(ctx, outputFilename+".textproto")
|
||||||
writeClasspathsJson(ctx, generatedJson, jars)
|
writeClasspathsTextproto(ctx, generatedTextproto, jars)
|
||||||
|
|
||||||
rule := android.NewRuleBuilder(pctx, ctx)
|
rule := android.NewRuleBuilder(pctx, ctx)
|
||||||
rule.Command().
|
rule.Command().
|
||||||
BuiltTool("conv_classpaths_proto").
|
BuiltTool("conv_classpaths_proto").
|
||||||
Flag("encode").
|
Flag("encode").
|
||||||
Flag("--format=json").
|
Flag("--format=textproto").
|
||||||
FlagWithInput("--input=", generatedJson).
|
FlagWithInput("--input=", generatedTextproto).
|
||||||
FlagWithOutput("--output=", c.outputFilepath)
|
FlagWithOutput("--output=", c.outputFilepath)
|
||||||
|
|
||||||
rule.Build("classpath_fragment", "Compiling "+c.outputFilepath.String())
|
rule.Build("classpath_fragment", "Compiling "+c.outputFilepath.String())
|
||||||
@@ -181,39 +181,17 @@ func (c *ClasspathFragmentBase) generateClasspathProtoBuildActions(ctx android.M
|
|||||||
ctx.SetProvider(ClasspathFragmentProtoContentInfoProvider, classpathProtoInfo)
|
ctx.SetProvider(ClasspathFragmentProtoContentInfoProvider, classpathProtoInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
func writeClasspathsJson(ctx android.ModuleContext, output android.WritablePath, jars []classpathJar) {
|
func writeClasspathsTextproto(ctx android.ModuleContext, output android.WritablePath, jars []classpathJar) {
|
||||||
var content strings.Builder
|
var content strings.Builder
|
||||||
|
|
||||||
fmt.Fprintf(&content, "{\n")
|
for _, jar := range jars {
|
||||||
fmt.Fprintf(&content, "\"jars\": [\n")
|
fmt.Fprintf(&content, "jars {\n")
|
||||||
for idx, jar := range jars {
|
fmt.Fprintf(&content, "path: \"%s\"\n", jar.path)
|
||||||
fmt.Fprintf(&content, "{\n")
|
fmt.Fprintf(&content, "classpath: %s\n", jar.classpath)
|
||||||
|
fmt.Fprintf(&content, "min_sdk_version: \"%s\"\n", jar.minSdkVersion)
|
||||||
fmt.Fprintf(&content, "\"path\": \"%s\",\n", jar.path)
|
fmt.Fprintf(&content, "max_sdk_version: \"%s\"\n", jar.maxSdkVersion)
|
||||||
fmt.Fprintf(&content, "\"classpath\": \"%s\"\n", jar.classpath)
|
fmt.Fprintf(&content, "}\n")
|
||||||
|
|
||||||
if jar.minSdkVersion != "" {
|
|
||||||
fmt.Fprintf(&content, ",\n")
|
|
||||||
fmt.Fprintf(&content, "\"minSdkVersion\": \"%s\"\n", jar.minSdkVersion)
|
|
||||||
} else {
|
|
||||||
fmt.Fprintf(&content, "\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
if jar.maxSdkVersion != "" {
|
|
||||||
fmt.Fprintf(&content, ",\n")
|
|
||||||
fmt.Fprintf(&content, "\"maxSdkVersion\": \"%s\"\n", jar.maxSdkVersion)
|
|
||||||
} else {
|
|
||||||
fmt.Fprintf(&content, "\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
if idx < len(jars)-1 {
|
|
||||||
fmt.Fprintf(&content, "},\n")
|
|
||||||
} else {
|
|
||||||
fmt.Fprintf(&content, "}\n")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
fmt.Fprintf(&content, "]\n")
|
|
||||||
fmt.Fprintf(&content, "}\n")
|
|
||||||
|
|
||||||
android.WriteFileRule(ctx, output, content.String())
|
android.WriteFileRule(ctx, output, content.String())
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user