Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87dc8b71 authored by Colin Cross's avatar Colin Cross Committed by Gerrit Code Review
Browse files

Merge "Use protoc-gen-javalite for java lite protos"

parents 1a583e7e 5a5aca05
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -351,6 +351,10 @@ func (c *config) BlueprintToolLocation() string {

var _ bootstrap.ConfigBlueprintToolLocation = (*config)(nil)

func (c *config) HostToolPath(ctx PathContext, tool string) Path {
	return PathForOutput(ctx, "host", c.PrebuiltOS(), "bin", tool)
}

// HostSystemTool looks for non-hermetic tools from the system we're running on.
// Generally shouldn't be used, but useful to find the XCode SDK, etc.
func (c *config) HostSystemTool(name string) string {
+1 −0
Original line number Diff line number Diff line
@@ -161,6 +161,7 @@ type javaBuilderFlags struct {
	kotlincClasspath classpath

	protoFlags       []string
	protoDeps        android.Paths
	protoOutTypeFlag string // The flag itself: --java_out
	protoOutParams   string // Parameters to that flag: --java_out=$protoOutParams:$outDir
	protoRoot        bool
+12 −9
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ func genProto(ctx android.ModuleContext, protoFile android.Path, flags javaBuild
		Description: "protoc " + protoFile.Rel(),
		Output:      srcJarFile,
		Input:       protoFile,
		Implicits:   flags.protoDeps,
		Args: map[string]string{
			"protoBase":      protoBase,
			"protoOut":       flags.protoOutTypeFlag,
@@ -93,14 +94,16 @@ func protoDeps(ctx android.BottomUpMutatorContext, p *android.ProtoProperties) {
func protoFlags(ctx android.ModuleContext, j *CompilerProperties, p *android.ProtoProperties,
	flags javaBuilderFlags) javaBuilderFlags {

	var plugin string

	switch String(p.Proto.Type) {
	case "micro":
		flags.protoOutTypeFlag = "--javamicro_out"
	case "nano":
		flags.protoOutTypeFlag = "--javanano_out"
	case "lite":
		flags.protoOutTypeFlag = "--java_out"
		flags.protoOutParams = "lite"
		plugin = "protoc-gen-javalite"
		flags.protoOutTypeFlag = "--javalite_out"
	case "full", "":
		flags.protoOutTypeFlag = "--java_out"
	default:
@@ -108,15 +111,15 @@ func protoFlags(ctx android.ModuleContext, j *CompilerProperties, p *android.Pro
			String(p.Proto.Type))
	}

	if len(j.Proto.Output_params) > 0 {
		if flags.protoOutParams != "" {
			flags.protoOutParams += ","
		}
		flags.protoOutParams += strings.Join(j.Proto.Output_params, ",")
	}

	flags.protoOutParams = strings.Join(j.Proto.Output_params, ",")
	flags.protoFlags = android.ProtoFlags(ctx, p)
	flags.protoRoot = android.ProtoCanonicalPathFromRoot(ctx, p)

	if plugin != "" {
		path := ctx.Config().HostToolPath(ctx, plugin)
		flags.protoDeps = append(flags.protoDeps, path)
		flags.protoFlags = append(flags.protoFlags, "--plugin="+path.String())
	}

	return flags
}