diff options
author | Dan Willemsen <dwillemsen@google.com> | 2018-02-23 21:00:53 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-02-23 21:00:53 +0000 |
commit | 6c3ba6c46c59d96b9050f309b6e6581b59b7e1e3 (patch) | |
tree | 72c459f74452f37107f29385c37d464e09af37d7 /java | |
parent | 77b3dc4172693c9e8b7ce17c7cbda61f3575c263 (diff) | |
parent | fb408c8e6d2c9bc08df266672c817bfb64d654d0 (diff) | |
download | build_soong-6c3ba6c46c59d96b9050f309b6e6581b59b7e1e3.tar.gz build_soong-6c3ba6c46c59d96b9050f309b6e6581b59b7e1e3.tar.bz2 build_soong-6c3ba6c46c59d96b9050f309b6e6581b59b7e1e3.zip |
Merge "Add proto.canonical_path_from_root" am: 7c695eb797 am: c530837d4c
am: fb408c8e6d
Change-Id: I6bfe260cc2c8d67f73bdbb1eb70ee1df6bf33de4
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 } |