xref: /aosp_15_r20/external/turbine/proto/deps.proto (revision f7d94438c8bcdfdbf0d5a2a5e40120d0696e7088)
1*f7d94438SYifei Zhang// Copyright 2016 Google Inc. All Rights Reserved.
2*f7d94438SYifei Zhang//
3*f7d94438SYifei Zhang// Licensed under the Apache License, Version 2.0 (the "License");
4*f7d94438SYifei Zhang// you may not use this file except in compliance with the License.
5*f7d94438SYifei Zhang// You may obtain a copy of the License at
6*f7d94438SYifei Zhang//
7*f7d94438SYifei Zhang//    http://www.apache.org/licenses/LICENSE-2.0
8*f7d94438SYifei Zhang//
9*f7d94438SYifei Zhang// Unless required by applicable law or agreed to in writing, software
10*f7d94438SYifei Zhang// distributed under the License is distributed on an "AS IS" BASIS,
11*f7d94438SYifei Zhang// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*f7d94438SYifei Zhang// See the License for the specific language governing permissions and
13*f7d94438SYifei Zhang// limitations under the License.
14*f7d94438SYifei Zhang
15*f7d94438SYifei Zhang// Definitions for dependency reports.
16*f7d94438SYifei Zhang
17*f7d94438SYifei Zhangsyntax = "proto2";
18*f7d94438SYifei Zhang
19*f7d94438SYifei Zhangoption java_package = "com.google.turbine.proto";
20*f7d94438SYifei Zhangoption java_outer_classname = "DepsProto";
21*f7d94438SYifei Zhang
22*f7d94438SYifei Zhangmessage Dependency {
23*f7d94438SYifei Zhang  enum Kind {
24*f7d94438SYifei Zhang    // Dependency used explicitly in the source.
25*f7d94438SYifei Zhang    EXPLICIT = 0;
26*f7d94438SYifei Zhang    // Dependency that is implicitly loaded and used by the compiler.
27*f7d94438SYifei Zhang    IMPLICIT = 1;
28*f7d94438SYifei Zhang    // Unused dependency.
29*f7d94438SYifei Zhang    UNUSED = 2;
30*f7d94438SYifei Zhang    // Implicit dependency considered by the compiler but not completed.
31*f7d94438SYifei Zhang    INCOMPLETE = 3;
32*f7d94438SYifei Zhang  }
33*f7d94438SYifei Zhang
34*f7d94438SYifei Zhang  // Path to the artifact representing this dependency.
35*f7d94438SYifei Zhang  required string path = 1;
36*f7d94438SYifei Zhang
37*f7d94438SYifei Zhang  // Dependency kind
38*f7d94438SYifei Zhang  required Kind kind = 2;
39*f7d94438SYifei Zhang}
40*f7d94438SYifei Zhang
41*f7d94438SYifei Zhang// Top-level message found in .deps artifacts
42*f7d94438SYifei Zhangmessage Dependencies {
43*f7d94438SYifei Zhang  repeated Dependency dependency = 1;
44*f7d94438SYifei Zhang
45*f7d94438SYifei Zhang  // Name of the rule being analyzed.
46*f7d94438SYifei Zhang  optional string rule_label = 2;
47*f7d94438SYifei Zhang
48*f7d94438SYifei Zhang  // Whether the action was successful; even when compilation fails, partial
49*f7d94438SYifei Zhang  // dependency information can be useful.
50*f7d94438SYifei Zhang  optional bool success = 3;
51*f7d94438SYifei Zhang
52*f7d94438SYifei Zhang  // If the Java action was started with a reduced classpath and an error
53*f7d94438SYifei Zhang  // occurred suggesting that it should be rerun with the full classpath, this
54*f7d94438SYifei Zhang  // will be true.
55*f7d94438SYifei Zhang  optional bool requires_reduced_classpath_fallback = 5;
56*f7d94438SYifei Zhang}
57