@@ -59,6 +59,8 @@ public abstract class FastBuildBlazeData {
59
59
60
60
public abstract Optional <JavaToolchainInfo > javaToolchainInfo ();
61
61
62
+ public abstract Optional <ProtoInfo > protoInfo ();
63
+
62
64
public static Builder builder () {
63
65
return new AutoValue_FastBuildBlazeData .Builder ()
64
66
.setDependencies (ImmutableList .of ())
@@ -82,6 +84,8 @@ public abstract static class Builder {
82
84
83
85
public abstract Builder setJavaToolchainInfo (JavaToolchainInfo javaToolchainInfo );
84
86
87
+ public abstract Builder setProtoInfo (ProtoInfo protoInfo );
88
+
85
89
public abstract FastBuildBlazeData build ();
86
90
}
87
91
@@ -103,6 +107,9 @@ static FastBuildBlazeData fromProto(FastBuildInfo.FastBuildBlazeData proto) {
103
107
if (proto .hasJavaToolchainInfo ()) {
104
108
builder .setJavaToolchainInfo (JavaToolchainInfo .fromProto (proto .getJavaToolchainInfo ()));
105
109
}
110
+ if (proto .hasProtoInfo ()) {
111
+ builder .setProtoInfo (ProtoInfo .fromProto (proto .getProtoInfo ()));
112
+ }
106
113
return builder .build ();
107
114
}
108
115
@@ -215,7 +222,7 @@ public abstract Builder setAnnotationProcessorClasspath(
215
222
216
223
/** Data about a java_toolchain rule. */
217
224
@ AutoValue
218
- abstract static class JavaToolchainInfo {
225
+ public abstract static class JavaToolchainInfo {
219
226
public abstract ImmutableList <ArtifactLocation > javacJars ();
220
227
221
228
public abstract ImmutableList <ArtifactLocation > bootClasspathJars ();
@@ -224,13 +231,16 @@ abstract static class JavaToolchainInfo {
224
231
225
232
public abstract String targetVersion ();
226
233
234
+ public abstract Optional <JavaRuntime > javaRuntime ();
235
+
227
236
static JavaToolchainInfo create (
228
237
ImmutableList <ArtifactLocation > javacJars ,
229
238
ImmutableList <ArtifactLocation > bootJars ,
230
239
String sourceVersion ,
231
- String targetVersion ) {
240
+ String targetVersion ,
241
+ JavaRuntime javaRuntime ) {
232
242
return new AutoValue_FastBuildBlazeData_JavaToolchainInfo (
233
- javacJars , bootJars , sourceVersion , targetVersion );
243
+ javacJars , bootJars , sourceVersion , targetVersion , Optional . ofNullable ( javaRuntime ) );
234
244
}
235
245
236
246
static JavaToolchainInfo fromProto (FastBuildInfo .JavaToolchainInfo javaToolchainInfo ) {
@@ -242,11 +252,49 @@ static JavaToolchainInfo fromProto(FastBuildInfo.JavaToolchainInfo javaToolchain
242
252
javaToolchainInfo .getBootclasspathJarsList ().stream ()
243
253
.map (ArtifactLocation ::fromProto )
244
254
.collect (toImmutableList ());
255
+ JavaRuntime javaRuntime = null ;
256
+ if (javaToolchainInfo .hasJavaRuntime ()) {
257
+ javaRuntime = JavaRuntime .fromProto (javaToolchainInfo .getJavaRuntime ());
258
+ }
259
+
245
260
return create (
246
261
javacJars ,
247
262
bootJars ,
248
263
javaToolchainInfo .getSourceVersion (),
249
- javaToolchainInfo .getTargetVersion ());
264
+ javaToolchainInfo .getTargetVersion (), javaRuntime );
265
+ }
266
+ }
267
+ /** Data about a java_runtime rule. */
268
+ @ AutoValue
269
+ public abstract static class JavaRuntime {
270
+ public abstract String javaExecutableExecPath ();
271
+
272
+ static JavaRuntime create (
273
+ String javaExecutableExecPath ) {
274
+ return new AutoValue_FastBuildBlazeData_JavaRuntime (javaExecutableExecPath );
275
+ }
276
+
277
+ static JavaRuntime fromProto (FastBuildInfo .JavaRuntimeInfo javaRuntime ) {
278
+ return create (javaRuntime .getJavaExecutableExecPath ());
279
+ }
280
+ }
281
+
282
+ /**
283
+ * Data about a proto_library rule.
284
+ */
285
+ @ AutoValue
286
+ public abstract static class ProtoInfo {
287
+
288
+ public abstract Set <ArtifactLocation > sources ();
289
+
290
+ static ProtoInfo create (Set <ArtifactLocation > sources ) {
291
+ return new AutoValue_FastBuildBlazeData_ProtoInfo (sources );
292
+ }
293
+
294
+ static ProtoInfo fromProto (FastBuildInfo .ProtoInfo proto ) {
295
+ Set <ArtifactLocation > sources =
296
+ proto .getSourcesList ().stream ().map (ArtifactLocation ::fromProto ).collect (toSet ());
297
+ return create (sources );
250
298
}
251
299
}
252
300
}
0 commit comments