123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- // Copyright 2014 The Bazel Authors. All rights reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- //
- // proto definitions for the blaze extra_action feature.
- syntax = "proto2";
- package blaze;
- option java_multiple_files = true;
- option java_package = "com.google.devtools.build.lib.actions.extra";
- // option cc_api_version = 2;
- // option java_api_version = 2;
- // A list of extra actions and metadata for the print_action command.
- message ExtraActionSummary {
- repeated DetailedExtraActionInfo action = 1;
- }
- // An individual action printed by the print_action command.
- message DetailedExtraActionInfo {
- // If the given action was included in the output due to a request for a
- // specific file, then this field contains the name of that file so that the
- // caller can correctly associate the extra action with that file.
- //
- // The data in this message is currently not sufficient to run the action on a
- // production machine, because not all necessary input files are identified,
- // especially for C++.
- //
- // There is no easy way to fix this; we could require that all header files
- // are declared and then add all of them here (which would be a huge superset
- // of the files that are actually required), or we could run the include
- // scanner and add those files here.
- optional string triggering_file = 1;
- // The actual action.
- required ExtraActionInfo action = 2;
- }
- // Provides information to an extra_action on the original action it is
- // shadowing.
- message ExtraActionInfo {
- extensions 1000 to max;
- // The label of the ActionOwner of the shadowed action.
- optional string owner = 1;
- // Only set if the owner is an Aspect.
- // Corresponds to AspectValue.AspectKey.getAspectClass.getName()
- // This field is deprecated as there might now be
- // multiple aspects applied to the same target.
- // This is the aspect name of the last aspect
- // in 'aspects' (8) field.
- optional string aspect_name = 6 [deprecated = true];
- // Only set if the owner is an Aspect.
- // Corresponds to AspectValue.AspectKey.getParameters()
- // This field is deprecated as there might now be
- // multiple aspects applied to the same target.
- // These are the aspect parameters of the last aspect
- // in 'aspects' (8) field.
- map<string, StringList> aspect_parameters = 7 [deprecated = true];
- message StringList {
- option deprecated = true;
- repeated string value = 1;
- }
- message AspectDescriptor {
- // Corresponds to AspectDescriptor.getName()
- optional string aspect_name = 1;
- // Corresponds to AspectDescriptor.getParameters()
- map<string, StringList> aspect_parameters = 2;
- message StringList {
- repeated string value = 1;
- }
- }
- // If the owner is an aspect, all aspects applied to the target
- repeated AspectDescriptor aspects = 8;
- // An id uniquely describing the shadowed action at the ActionOwner level.
- optional string id = 2;
- // The mnemonic of the shadowed action. Used to distinguish actions with the
- // same ActionType.
- optional string mnemonic = 5;
- }
- message EnvironmentVariable {
- // It is possible that this name is not a valid variable identifier.
- required string name = 1;
- // The value is unescaped and unquoted.
- required string value = 2;
- }
- // Provides access to data that is specific to spawn actions.
- // Usually provided by actions using the "Spawn" & "Genrule" Mnemonics.
- message SpawnInfo {
- extend ExtraActionInfo {
- optional SpawnInfo spawn_info = 1003;
- }
- repeated string argument = 1;
- // A list of environment variables and their values. No order is enforced.
- repeated EnvironmentVariable variable = 2;
- repeated string input_file = 4;
- repeated string output_file = 5;
- }
- // Provides access to data that is specific to C++ compile actions.
- // Usually provided by actions using the "CppCompile" Mnemonic.
- message CppCompileInfo {
- extend ExtraActionInfo {
- optional CppCompileInfo cpp_compile_info = 1001;
- }
- optional string tool = 1;
- repeated string compiler_option = 2;
- optional string source_file = 3;
- optional string output_file = 4;
- // Due to header discovery, this won't include headers unless the build is
- // actually performed. If set, this field will include the value of
- // "source_file" in addition to the headers.
- repeated string sources_and_headers = 5;
- // A list of environment variables and their values. No order is enforced.
- repeated EnvironmentVariable variable = 6;
- }
- // Provides access to data that is specific to C++ link actions.
- // Usually provided by actions using the "CppLink" Mnemonic.
- message CppLinkInfo {
- extend ExtraActionInfo {
- optional CppLinkInfo cpp_link_info = 1002;
- }
- repeated string input_file = 1;
- optional string output_file = 2;
- optional string interface_output_file = 3;
- optional string link_target_type = 4;
- optional string link_staticness = 5;
- repeated string link_stamp = 6;
- repeated string build_info_header_artifact = 7;
- // The list of command line options used for running the linking tool.
- repeated string link_opt = 8;
- }
- // Provides access to data that is specific to java compile actions.
- // Usually provided by actions using the "Javac" Mnemonic.
- message JavaCompileInfo {
- extend ExtraActionInfo {
- optional JavaCompileInfo java_compile_info = 1000;
- }
- optional string outputjar = 1;
- repeated string classpath = 2;
- repeated string sourcepath = 3;
- repeated string source_file = 4;
- repeated string javac_opt = 5;
- repeated string processor = 6;
- repeated string processorpath = 7;
- repeated string bootclasspath = 8;
- repeated string argument = 9;
- }
- // Provides access to data that is specific to python rules.
- // Usually provided by actions using the "Python" Mnemonic.
- message PythonInfo {
- extend ExtraActionInfo {
- optional PythonInfo python_info = 1005;
- }
- repeated string source_file = 1;
- repeated string dep_file = 2;
- }
|