blob: ad73c6873ccd2d8bb780c597c3ca71e288ebe6ee [file] [log] [blame]
// Copyright 2015 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.
syntax = "proto3";
package blaze;
option java_api_version = 2;
option java_package = "com.google.devtools.intellij.ideinfo";
message ArtifactLocation {
string relative_path = 2;
bool is_source = 3;
// path from the execution root to the actual root:
// exec_root + root_execution_path_fragment + relative_path = absolute_path
string root_execution_path_fragment = 4;
// whether this artifact comes from an external repository (bazel only)
bool is_external = 5;
// The contents of relative_path and root_execution_path_fragment have changed
// for external workspaces. This is a temporary field to distinguish between
// the two versions.
bool is_new_external_version = 6;
}
message JavaSourcePackage {
string package_string = 2;
ArtifactLocation artifact_location = 3;
}
message PackageManifest {
repeated JavaSourcePackage sources = 1;
}
message LibraryArtifact {
ArtifactLocation jar = 1;
ArtifactLocation interface_jar = 2;
ArtifactLocation source_jar = 3;
}
message JavaIdeInfo {
repeated LibraryArtifact jars = 1;
repeated LibraryArtifact generated_jars = 2;
ArtifactLocation package_manifest = 3;
repeated ArtifactLocation sources = 4;
ArtifactLocation jdeps = 5;
LibraryArtifact filtered_gen_jar = 6;
string main_class = 7;
}
message CIdeInfo {
repeated ArtifactLocation source = 1;
repeated string transitive_include_directory = 3;
repeated string transitive_quote_include_directory = 4;
repeated string transitive_define = 5;
repeated string transitive_system_include_directory = 6;
repeated string target_copt = 7;
repeated string target_define = 8;
repeated string target_include = 9;
repeated ArtifactLocation header = 10;
repeated ArtifactLocation textual_header = 11;
}
message AndroidIdeInfo {
repeated ArtifactLocation resources = 1;
ArtifactLocation apk = 3;
repeated ArtifactLocation dependency_apk = 4;
ArtifactLocation manifest = 5;
string java_package = 7;
bool has_idl_sources = 8;
LibraryArtifact idl_jar = 9;
bool generate_resource_class = 10;
string legacy_resources = 11;
LibraryArtifact resource_jar = 12;
string idl_import_root = 13;
}
message AndroidSdkIdeInfo {
ArtifactLocation android_jar = 1;
}
message PyIdeInfo {
repeated ArtifactLocation sources = 1;
}
message GoIdeInfo {
repeated ArtifactLocation generated_sources = 1;
}
message JsIdeInfo {
repeated ArtifactLocation sources = 1;
}
message TsIdeInfo {
repeated ArtifactLocation sources = 1;
}
message CToolchainIdeInfo {
string target_name = 1;
repeated string base_compiler_option = 2;
repeated string cpp_option = 3;
repeated string c_option = 4;
string preprocessor_executable = 5;
string cpp_executable = 6;
repeated string link_option = 7;
repeated string built_in_include_directory = 8;
repeated string unfiltered_compiler_option = 9;
}
message ProtoLibraryLegacyJavaIdeInfo {
enum ApiFlavor {
NONE = 0;
IMMUTABLE = 1;
MUTABLE = 2;
BOTH = 3;
}
int32 api_version = 1;
ApiFlavor api_flavor = 2;
repeated LibraryArtifact jars1 = 3;
repeated LibraryArtifact jars_mutable = 4;
repeated LibraryArtifact jars_immutable = 5;
}
message TestInfo {
string size = 1;
}
message JavaToolchainIdeInfo {
string source_version = 1;
string target_version = 2;
ArtifactLocation javac_jar = 3;
}
message TargetKey {
string label = 1;
repeated string aspect_ids = 3;
}
message Dependency {
enum DependencyType {
COMPILE_TIME = 0;
RUNTIME = 1;
}
TargetKey target = 1;
DependencyType dependency_type = 2;
}
message TargetIdeInfo {
string label = 1 [deprecated = true];
repeated string dependencies = 4 [deprecated = true];
// kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
JavaIdeInfo java_ide_info = 7;
AndroidIdeInfo android_ide_info = 8;
repeated string tags = 9;
repeated string runtime_deps = 10 [deprecated = true];
ArtifactLocation build_file_artifact_location = 11;
CIdeInfo c_ide_info = 12;
CToolchainIdeInfo c_toolchain_ide_info = 13;
string kind_string = 14;
TestInfo test_info = 15;
ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;
JavaToolchainIdeInfo java_toolchain_ide_info = 17;
PyIdeInfo py_ide_info = 18;
TargetKey key = 19;
repeated Dependency deps = 20;
reserved 21;
AndroidSdkIdeInfo android_sdk_ide_info = 22;
reserved 23;
repeated string features = 24;
GoIdeInfo go_ide_info = 25;
JsIdeInfo js_ide_info = 26;
TsIdeInfo ts_ide_info = 27;
// Next available: 28
}