blob: bb8e42423c5ed675eb016a9f0ed224920b3528cf [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_package = "com.google.devtools.build.lib.ideinfo.androidstudio";
option java_generate_equals_and_hash = true;
message ArtifactLocation {
// deprecated -- this is not machine agnostic and will be removed in a future release
string root_path = 1 [deprecated=true];
string relative_path = 2;
bool is_source = 3;
// set for derived artifacts (is_source = false)
string root_execution_path_fragment = 4;
}
message LibraryArtifact {
ArtifactLocation jar = 1;
ArtifactLocation interface_jar = 2;
ArtifactLocation source_jar = 3;
}
message JavaRuleIdeInfo {
repeated LibraryArtifact jars = 1;
repeated LibraryArtifact generated_jars = 2;
ArtifactLocation package_manifest = 3;
repeated ArtifactLocation sources = 4;
ArtifactLocation jdeps = 5;
}
message CRuleIdeInfo {
repeated ArtifactLocation source = 1;
repeated ArtifactLocation exported_header = 2;
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 rule_copt = 7;
repeated string rule_define = 8;
repeated string rule_include = 9;
}
message AndroidRuleIdeInfo {
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;
}
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 RuleIdeInfo {
enum Kind {
ANDROID_BINARY = 0;
ANDROID_LIBRARY = 1;
ANDROID_TEST = 2;
ANDROID_ROBOELECTRIC_TEST = 3;
JAVA_LIBRARY = 4;
JAVA_TEST = 5;
JAVA_IMPORT = 6;
JAVA_BINARY = 7;
PROTO_LIBRARY = 8;
ANDROID_SDK = 9;
JAVA_PLUGIN = 10;
ANDROID_RESOURCES = 11;
CC_LIBRARY = 12;
CC_BINARY = 13;
CC_TEST = 14;
CC_INC_LIBRARY = 15;
CC_TOOLCHAIN = 16;
}
string label = 1;
Kind kind = 2;
// deprecated -- this is not machine agnostic and will be removed in a future release
string build_file = 3 [deprecated=true];
repeated string dependencies = 4;
// kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
JavaRuleIdeInfo java_rule_ide_info = 7;
AndroidRuleIdeInfo android_rule_ide_info = 8;
repeated string tags = 9;
repeated string runtime_deps = 10;
ArtifactLocation build_file_artifact_location = 11;
CRuleIdeInfo c_rule_ide_info = 12;
CToolchainIdeInfo c_toolchain_ide_info = 13;
}