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

Commit f4155dc5 authored by Chih-hung Hsieh's avatar Chih-hung Hsieh Committed by Gerrit Code Review
Browse files

Merge "Use protobuf-codegen default and add mod_stem.rs"

parents cc49b095 c49649c0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -156,7 +156,7 @@ func (procMacro *procMacroDecorator) AndroidMk(ctx AndroidMkContext, ret *androi
}

func (sourceProvider *BaseSourceProvider) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
	outFile := sourceProvider.OutputFile
	outFile := sourceProvider.OutputFiles[0]
	ret.Class = "ETC"
	ret.OutputFile = android.OptionalPathForPath(outFile)
	ret.SubName += sourceProvider.subName
+1 −1
Original line number Diff line number Diff line
@@ -202,7 +202,7 @@ func (b *bindgenDecorator) GenerateSource(ctx ModuleContext, deps PathDeps) andr
		},
	})

	b.BaseSourceProvider.OutputFile = outputFile
	b.BaseSourceProvider.OutputFiles = android.Paths{outputFile}
	return outputFile
}

+11 −4
Original line number Diff line number Diff line
@@ -61,15 +61,22 @@ func (proto *protobufDecorator) GenerateSource(ctx ModuleContext, deps PathDeps)
	}

	outDir := android.PathForModuleOut(ctx)
	depFile := android.PathForModuleOut(ctx, proto.BaseSourceProvider.getStem(ctx)+".d")
	outputs := android.WritablePaths{android.PathForModuleOut(ctx, proto.BaseSourceProvider.getStem(ctx)+".rs")}
	stem := proto.BaseSourceProvider.getStem(ctx)
	// rust protobuf-codegen output <stem>.rs
	stemFile := android.PathForModuleOut(ctx, stem+".rs")
	// add mod_<stem>.rs to import <stem>.rs
	modFile := android.PathForModuleOut(ctx, "mod_"+stem+".rs")
	// mod_<stem>.rs is the main/first output file to be included/compiled
	outputs := android.WritablePaths{modFile, stemFile}
	depFile := android.PathForModuleOut(ctx, "mod_"+stem+".d")

	rule := android.NewRuleBuilder()
	android.ProtoRule(ctx, rule, protoFile.Path(), protoFlags, protoFlags.Deps, outDir, depFile, outputs)
	rule.Command().Text("printf '// @generated\\npub mod %s;\\n' '" + stem + "' >").Output(modFile)
	rule.Build(pctx, ctx, "protoc_"+protoFile.Path().Rel(), "protoc "+protoFile.Path().Rel())

	proto.BaseSourceProvider.OutputFile = outputs[0]
	return outputs[0]
	proto.BaseSourceProvider.OutputFiles = android.Paths{modFile, stemFile}
	return modFile
}

func (proto *protobufDecorator) SourceProviderProps() []interface{} {
+1 −1
Original line number Diff line number Diff line
@@ -684,7 +684,7 @@ func (mod *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
		} else {
			sourceMod := actx.GetDirectDepWithTag(mod.Name(), sourceDepTag)
			sourceLib := sourceMod.(*Module).compiler.(*libraryDecorator)
			mod.sourceProvider.setOutputFile(sourceLib.sourceProvider.Srcs()[0])
			mod.sourceProvider.setOutputFiles(sourceLib.sourceProvider.Srcs())
		}
	}

+5 −5
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ type SourceProviderProperties struct {
type BaseSourceProvider struct {
	Properties SourceProviderProperties

	OutputFile       android.Path
	OutputFiles      android.Paths
	subAndroidMkOnce map[SubAndroidMkProvider]bool
	subName          string
}
@@ -43,11 +43,11 @@ type SourceProvider interface {
	SourceProviderProps() []interface{}
	SourceProviderDeps(ctx DepsContext, deps Deps) Deps
	setSubName(subName string)
	setOutputFile(outputFile android.Path)
	setOutputFiles(outputFiles android.Paths)
}

func (sp *BaseSourceProvider) Srcs() android.Paths {
	return android.Paths{sp.OutputFile}
	return sp.OutputFiles
}

func (sp *BaseSourceProvider) GenerateSource(ctx ModuleContext, deps PathDeps) android.Path {
@@ -97,6 +97,6 @@ func (sp *BaseSourceProvider) setSubName(subName string) {
	sp.subName = subName
}

func (sp *BaseSourceProvider) setOutputFile(outputFile android.Path) {
	sp.OutputFile = outputFile
func (sp *BaseSourceProvider) setOutputFiles(outputFiles android.Paths) {
	sp.OutputFiles = outputFiles
}