diff options
author | Dan Willemsen <dwillemsen@google.com> | 2018-02-23 20:38:10 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-02-23 20:38:10 +0000 |
commit | 7c695eb797d9b34f2a3205f474091ef61a307bb2 (patch) | |
tree | b950b4811555da8eed08442d392e393ccbead84d /java | |
parent | 0c18d451d2775fba93a89d0c164d4074d0cb282d (diff) | |
parent | ab9f4268c01390b9d049c746e399b53a0f2c6dce (diff) | |
download | build_soong-7c695eb797d9b34f2a3205f474091ef61a307bb2.tar.gz build_soong-7c695eb797d9b34f2a3205f474091ef61a307bb2.tar.bz2 build_soong-7c695eb797d9b34f2a3205f474091ef61a307bb2.zip |
Merge "Add proto.canonical_path_from_root"
Diffstat (limited to 'java')
-rw-r--r-- | java/builder.go | 1 | ||||
-rw-r--r-- | java/gen.go | 12 | ||||
-rw-r--r-- | java/proto.go | 36 |
3 files changed, 26 insertions, 23 deletions
diff --git a/java/builder.go b/java/builder.go index 5aea1cb1..b8f8351f 100644 --- a/java/builder.go +++ b/java/builder.go @@ -169,6 +169,7 @@ type javaBuilderFlags struct { protoFlags []string protoOutTypeFlag string // The flag itself: --java_out protoOutParams string // Parameters to that flag: --java_out=$protoOutParams:$outDir + protoRoot bool } func TransformKotlinToClasses(ctx android.ModuleContext, outputFile android.WritablePath, diff --git a/java/gen.go b/java/gen.go index 4893e889..a9938297 100644 --- a/java/gen.go +++ b/java/gen.go @@ -85,7 +85,6 @@ func genLogtags(ctx android.ModuleContext, logtagsFile android.Path) android.Pat func (j *Module) genSources(ctx android.ModuleContext, srcFiles android.Paths, flags javaBuilderFlags) android.Paths { - var protoFiles android.Paths outSrcFiles := make(android.Paths, 0, len(srcFiles)) for _, srcFile := range srcFiles { @@ -98,20 +97,13 @@ func (j *Module) genSources(ctx android.ModuleContext, srcFiles android.Paths, javaFile := genLogtags(ctx, srcFile) outSrcFiles = append(outSrcFiles, javaFile) case ".proto": - protoFiles = append(protoFiles, srcFile) + srcJarFile := genProto(ctx, srcFile, flags) + outSrcFiles = append(outSrcFiles, srcJarFile) default: outSrcFiles = append(outSrcFiles, srcFile) } } - if len(protoFiles) > 0 { - protoSrcJar := android.PathForModuleGen(ctx, "proto.srcjar") - genProto(ctx, protoSrcJar, protoFiles, - flags.protoFlags, flags.protoOutTypeFlag, flags.protoOutParams) - - outSrcFiles = append(outSrcFiles, protoSrcJar) - } - return outSrcFiles } diff --git a/java/proto.go b/java/proto.go index 226fac08..2991ad98 100644 --- a/java/proto.go +++ b/java/proto.go @@ -30,31 +30,40 @@ func init() { var ( proto = pctx.AndroidStaticRule("protoc", blueprint.RuleParams{ - Command: `rm -rf $outDir && mkdir -p $outDir && ` + - `$protocCmd $protoOut=$protoOutParams:$outDir $protoFlags $in && ` + - `${config.SoongZipCmd} -jar -o $out -C $outDir -D $outDir`, + Command: `rm -rf $out.tmp && mkdir -p $out.tmp && ` + + `$protocCmd $protoOut=$protoOutParams:$out.tmp -I $protoBase $protoFlags $in && ` + + `${config.SoongZipCmd} -jar -o $out -C $out.tmp -D $out.tmp && rm -rf $out.tmp`, CommandDeps: []string{ "$protocCmd", "${config.SoongZipCmd}", }, - }, "protoFlags", "protoOut", "protoOutParams", "outDir") + }, "protoBase", "protoFlags", "protoOut", "protoOutParams") ) -func genProto(ctx android.ModuleContext, outputSrcJar android.WritablePath, - protoFiles android.Paths, protoFlags []string, protoOut, protoOutParams string) { +func genProto(ctx android.ModuleContext, protoFile android.Path, flags javaBuilderFlags) android.Path { + srcJarFile := android.GenPathWithExt(ctx, "proto", protoFile, "srcjar") + + var protoBase string + if flags.protoRoot { + protoBase = "." + } else { + protoBase = strings.TrimSuffix(protoFile.String(), protoFile.Rel()) + } ctx.Build(pctx, android.BuildParams{ Rule: proto, - Description: "protoc " + protoFiles[0].Rel(), - Output: outputSrcJar, - Inputs: protoFiles, + Description: "protoc " + protoFile.Rel(), + Output: srcJarFile, + Input: protoFile, Args: map[string]string{ - "outDir": android.ProtoDir(ctx).String(), - "protoOut": protoOut, - "protoOutParams": protoOutParams, - "protoFlags": strings.Join(protoFlags, " "), + "protoBase": protoBase, + "protoOut": flags.protoOutTypeFlag, + "protoOutParams": flags.protoOutParams, + "protoFlags": strings.Join(flags.protoFlags, " "), }, }) + + return srcJarFile } func protoDeps(ctx android.BottomUpMutatorContext, p *android.ProtoProperties) { @@ -103,6 +112,7 @@ func protoFlags(ctx android.ModuleContext, j *CompilerProperties, p *android.Pro } flags.protoFlags = android.ProtoFlags(ctx, p) + flags.protoRoot = android.ProtoCanonicalPathFromRoot(ctx, p) return flags } |